Командата find е една от най-широко използваните в Linux OS.


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

Той ви помага да търсите файлове, папки на Linux сървъра и е изключително полезен за поддържането на файловата система.

В тази статия изброих някои от най-често срещаните синтаксиси на командите за намиране, които да ви помогнат с производителността.

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

Ако знаете името на файла и файловата система, но не сте сигурни в точния път на папката, тогава можете да използвате този синтаксис.

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

[[Имейл защитен] ~] съобщения # find / var -name
/ VAR / дневник / съобщения
[[Имейл защитен] ~] #

Съвети: ако не знаете името на файловата система, можете да търсите на ниво / ниво, но имайте предвид, че може да отнеме време, ако имате голям брой файлови системи.

[[Имейл защитен] ~] съобщения за намиране / име
/ VAR / дневник / съобщения
[[Имейл защитен] ~] #

Ако не знаете точното име на файл, можете също да използвате шаблон за заместване, за да търсите.

бивш – за да търсите error_log, който може да опитате

[[Имейл защитен] ~] грешка # find / -name_ *
/ Var / дневник / уеб-/ error_log
[[Имейл защитен] ~] #

Какво ще кажете за търсене на име на файл с малка или горна буква, с други думи, игнориране на чувствителност към регистъра?

Е, можете да използвате –iname вместо –name.

Ex:

[[Имейл защитен] var] # find / -iname ПОСЛАНИЯ
/ VAR / дневник / съобщения
[[Имейл защитен] Var] #

Нека разгледаме още един сценарий в реално време. Ако знаете типа на файла и искате да търсите във всички тях.

Например – ако работите в WebSphere, може да искате да търсите във всички файлове, завършващи с .out, тогава можете да опитате

# find / -name * .out

Намерете файлове въз основа на собствеността и разрешенията

Като файлове с 777 разрешението е опасно, тъй като всеки може да редактира или изтрива, така че като системен администратор може да искате да поставите сканиране на място, за да намерите файлове с 777 разрешения.

За ex – да показва всички файлове с 777 разрешение под / opt файлова система.

[[Имейл защитен] ~] # find / opt / -тип 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 корен на корен 0 19 юли 03:36 /opt/SystemOut.log
[[Имейл защитен] ~] #

Можете също да промените разрешение от 777 на 755 в синтаксис на една команда find.

# find / opt / -type f -perm 777 -exec chmod 755 {} +;

Очевидно можете да коригирате разрешение от 755 към всеки друг, който може да ви хареса.

Какво ще кажете за намирането на файлове, който е собственост на root или друг потребител?

Това е много полезно, ако имате проблеми, докато стартирате услугите поради предишния старт е направено от root.

Например – ако tomcat е собственост на потребител, наречен „tomcatapp“ и по някаква причина сте започнали с root.

Познайте какво ще се случи, когато рестартирате следващия път с „tomcatapp“?

Това няма да бъде, защото част от собствеността върху файла е променена на root и сега „tomcatapp“ не може да променя / изтрива тези файлове. Така че това става много удобно в тази ситуация.

Ето как можете да търсите всеки файл, собственост на root в конкретна файлова система.

# find / opt / -user root

Забележка: изпълняването на този синтаксис за намиране на / ниво ще доведе до толкова файлове / папки, така че може да искате да контролирате, като правите това в конкретна файлова система.

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

Поддържането на файловата система е от съществено значение за поддръжката на продукцията и често се налага да се справяте с този синтаксис, за да намерите дневници, които са по-стари от (да кажем) 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 GB във / opt файлова система.

# find / opt / -size + 1G

Съвети: Ако знаете, че всички файлове в / opt / с повече от 1 GB могат да бъдат изтрити, тогава можете просто да намерите и изтриете в същия ред.

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

Надявам се, че по-горе командите за намиране са удобни и ще ви помогнат в реално време.

За да научите повече за Linux командите, разгледайте този онлайн курс.

ЕТИКЕТИ:

  • Linux

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me