有用的Linux查找系统管理员命令

本文概述

  • 在特定文件系统上查找文件
  • 根据所有权和权限查找文件
  • 查找早于特定日期的文件
  • 查找大文件
find命令是Linux操作系统中使用最广泛的命令之一。
如果不知道find命令, 将很难管理Linux环境。
它可以帮助你搜索Linux服务器上的文件, 文件夹, 对于文件系统内务处理非常有用。
在本文中, 我列出了一些最常见的find命令语法, 以帮助你提高工作效率。
在特定文件系统上查找文件如果你知道文件名和文件系统, 但不确定确切的文件夹路径, 则可以使用此语法。
在下面的示例中, 我正在/ var文件系统中搜索消息文件。
[[email  protected] ~]# find /var -name messages/var/log/messages[[email  protected] ~]#

提示:如果你不知道文件系统名称, 则可以在/级上进行搜索, 但是请注意, 如果文件系统数量很多, 可能会花费一些时间。
[[email  protected] ~]# find / -name messages/var/log/messages[[email  protected] ~]#

如果你不知道确切的文件名, 也可以使用通配符模式进行搜索。
例如-要搜索error_log, 你可以尝试
[[email  protected] ~]# find / -name error_*/var/log/httpd/error_log[[email  protected] ~]#

如何以小写或大写字母搜索文件名, 换句话说, 忽略大小写?
好了, 你可以使用–iname代替–name。
例如:
[[email  protected] var]# find / -iname MESSAGES/var/log/messages[[email  protected] var]#

让我们来看另一种实时场景。如果你知道文件类型并想要搜索所有文件。
例如, 如果你正在使用WebSphere, 则可能需要搜索所有以.out结尾的文件, 然后可以尝试
# find / -name *.out

根据所有权和权限查找文件具有777权限的文件很危险, 因为任何人都可以编辑或删除, 因此, 作为系统管理员, 你可能需要进行扫描以查找任何具有777权限的文件。
例如-显示/ opt文件系统下所有具有777权限的文件。
[[email  protected] ~]# find /opt/ -type f -perm 777/opt/testing/opt/SystemOut.log[[email  protected] ~]#

提示:在同一行命令中打印文件所有权和时间戳如何?
[[email  protected] ~]# find /opt/ -type f -perm 777 -exec ls -ltr {} + ; -rwxrwxrwx 1 root root 0 Jul 19 03:35 /opt/testing-rwxrwxrwx 1 root root 0 Jul 19 03:36 /opt/SystemOut.log[[email  protected] ~]#

你也可以使用单个find命令语法将权限从777更改为755。
# find /opt/ -type f -perm 777 -exec chmod 755 {} + ;

显然, 你可以将权限从755调整为其他所需的权限。
如何查找由root或其他用户拥有的文件?
如果由于先前的启动是由root完成而在启动服务时遇到问题, 这将非常有帮助。
例如, 如果tomcat由名为” tomcatapp” 的用户拥有, 并且由于某种原因, 你已从root开始。
猜猜下次使用” tomcatapp” 重启时会发生什么?
这不是因为文件的某些所有权已更改为root, 现在” tomcatapp” 无法修改/删除这些文件。因此, 在这种情况下, 这变得非常方便。
这是在特定文件系统中搜索root拥有的任何文件的方法。
# find /opt/ -user root

注意:在/级别上执行此find语法将产生大量文件/文件夹, 因此你可能希望通过在特定文件系统中执行此操作来进行控制。
查找早于特定日期的文件文件系统内务对于生产支持至关重要, 通常你必须处理这种语法才能查找比60天更旧的日志。
以下示例是在/ opt文件系统中查找超过60天的access.log文件。
# find /opt/ -name access.log -mtime +60

提示:如果决定在同一命令行中查找和删除, 则可以执行以下操作。这将在/ opt文件系统中找到超过60天的access.log并将其删除。
# find /opt/ -name access.log -mtime +60 -exec rm {} + ;

尽管这非常方便, 但是你可能需要在删除文件之前列出它们。这样做
# find /opt/ -name access.log -mtime +60 -exec ls -ltr {} + ;

查找大文件有时由于由于代码问题等原因应用程序正在写入大量日志, 你可能不得不处理频繁的文件系统清理。
让我们以在/ opt文件系统中搜索大于1 GB的文件为例。
# find /opt/ -size +1G

提示:如果你知道/ opt /中超过1 GB的所有文件都可以删除, 则只需在同一行中查找和删除即可。
# find /opt/ -size +1G -exec rm {} + ;

我希望上述查找命令对你有所帮助, 并能为你提供实时帮助。
【有用的Linux查找系统管理员命令】要了解有关Linux命令的更多信息, 请查看此在线课程。

    推荐阅读