Полезные Linux команды поиска для системного администратора

Команда find является одной из наиболее широко используемых в ОС Linux..


Было бы просто трудно администрировать среду Linux, не зная команд поиска.

Он помогает вам искать файлы, папки на сервере Linux и чрезвычайно полезен для ведения файловой системы..

В этой статье я перечислил некоторые из наиболее распространенных синтаксисов команд поиска, чтобы помочь вам с производительностью.

Найти файлы в определенной файловой системе

Если вы знаете имя файла и файловую систему, но не знаете точный путь к папке, то вы можете использовать этот синтаксис.

В приведенном ниже примере я ищу файл сообщений в файловой системе / var.

[[Электронная почта защищена] ~] # find / var -name messages
/ вар / Журнал / сообщения
[[Электронная почта защищена] ~] #

Советы: если вы не знаете имя файловой системы, вы можете выполнить поиск на / level, но имейте в виду, что это может занять некоторое время, если у вас большое количество файловых систем.

[[Электронная почта защищена] ~] # найти / -имя сообщений
/ вар / Журнал / сообщения
[[Электронная почта защищена] ~] #

Если вы не знаете точное имя файла, вы также можете использовать шаблон подстановки для поиска.

бывший – для поиска error_log вы можете попробовать

[[Электронная почта защищена] ~] # find / -name error_ *
/ Вар / Журнал / HTTPD / error_log
[[Электронная почта защищена] ~] #

Как насчет поиска имени файла в нижнем или верхнем регистре, другими словами, игнорируя регистр?

Ну, вы можете использовать –iname вместо –name.

Пример:

[[Электронная почта защищена] var] # find / -iname СООБЩЕНИЯ
/ вар / Журнал / сообщения
[[Электронная почта защищена] вар] #

Давайте посмотрим на еще один сценарий в реальном времени. Если вы знаете тип файла и хотите найти их все.

Например, если вы работаете в WebSphere, вы можете искать все файлы, заканчивающиеся на .out, тогда вы можете попробовать

# find / -name * .out

Поиск файлов на основе прав собственности и прав доступа

Наличие файлов с 777 разрешение опасно, так как любой может редактировать или удалять, поэтому, как системный администратор, вы можете захотеть установить сканирование, чтобы найти любые файлы с разрешениями 777.

Для ex – показать любые файлы с разрешением 777 в файловой системе / opt.

[[Электронная почта защищена] ~] # find / opt / -type f -perm 777
/ Опт / тестирование
/opt/SystemOut.log
[[Электронная почта защищена] ~] #

Советы: как насчет печати владения файла, отметка времени в той же строке команды?

[[Электронная почта защищена] ~] # find / opt / -type f -perm 777 -exec ls -ltr {} +;
-rwxrwxrwx 1 root root 0 июл 19 03:35 / opt / testing
-rwxrwxrwx 1 root root 0 июл 19 03:36 /opt/SystemOut.log
[[Электронная почта защищена] ~] #

Вы также можете изменить разрешение с 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

Замечания: выполнение этого синтаксиса поиска на / level приведет к такому количеству файлов / папок, поэтому вы можете захотеть управлять этим, делая это в определенной файловой системе.

Найти файлы старше определенных дней

Ведение файловой системы имеет важное значение для производственной поддержки, и часто вам приходится иметь дело с этим синтаксисом, чтобы найти журналы, которые старше, скажем, 60 дней.

Ниже приведен пример поиска файла access.log старше 60 дней в файловой системе / opt.

# find / opt / -name access.log -mtime +60

Советы: если вы решите найти и удалить в одной командной строке, вы можете сделать, как показано ниже. Это позволит найти файл access.log старше 60 дней в файловой системе / opt и удалить его..

# find / opt / -name access.log -mtime +60 -exec rm {} +;

Хотя это очень удобно, вы можете перечислить файлы, прежде чем удалить их. Сделать так

# find / opt / -name access.log -mtime +60 -exec ls -ltr {} +;

Найти большой размер файла

Иногда вам приходится сталкиваться с частой очисткой файловой системы из-за того, что приложение пишет большое количество журналов из-за проблем с кодом и т. Д..

Давайте рассмотрим пример поиска файла размером более 1 ГБ в файловой системе / opt..

# find / opt / -size + 1G

Советы: Если вы знаете, что все файлы в / opt / объемом более 1 ГБ могут быть удалены, тогда вы можете просто найти и удалить в одной строке.

# find / opt / -size + 1G -exec rm {} +;

Надеюсь, что приведенные выше команды полезны и помогут вам в режиме реального времени..

Чтобы узнать больше о командах Linux, ознакомьтесь этот онлайн курс.

TAGS:

  • Linux

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map