Линукс и шел скриптинг – корисне find команде
Претражи фајл који се зове httpd.conf на целом компјутеру
find / -type f -name "httpd.conf" 2> /dev/null
Објашњење:
find – команда за претрагу
/ – где претражујеш (у овом случају root свих фолдера). Погледати хијерархију фајлова на Линуксu
type – тип фајла (f – фајл, d – фолдер, l – symlink)
name – реч или део речи (користити wildcard) који се тражи
2> /dev/null – грешке приликом претраге 2> (обично се јављају кад немате овлашћења да приступите неком фолдеру или фајлу) шаљи у црну рупу (/dev/null)
Пронађи ми у фолдеру /tmp али не и подфолдерима, све фајлове који у називу садрже реч „fraza“ а да су новији од 25.11.2015 17:00 – и то што нађеш премести у фолдер /home/draza
find /tmp/ -maxdepth 1 -newermt "2015-11-25 17:00:00" -type f -name "*fraza*" -exec mv {} /home/draza \;
Објашњење:
maxdepth – колико нивоа у дубину (подфолдера) да претражује (1 само тренутни фолдер без подфолдера)
newermt – фајл је раније (newer) мењан (m) од времена (t) који се наводи као аргумент (у овом примеру 2015-11-25 17:00:00)
exec – изврши команду над резултатима {}
Пронађи ми у фолдеру /tmp и његовим подфолдерима све фајлове са ектензијом log и да почињу фразом Program а да при том fraza „Program“ може бити било каквим словима (није case sensitive), а којима ништа није мењано дуже од 3 дана и то што нађеш обриши (прво излистајте фајлове покретањем команде без дела који почиње са -exec да не бисте обрисали нешто што не треба)
find /tmp -type f -iname "program*.log" -mtime +3 -exec rm {} \;
Објашњење (а да израза нема у горњем примеру):
iname – исто као и наме али небитно да ли су слова велика или мала
mtime – време кад је фајл измењен је већи од 3 дана (зато +3, да је -3 значило би да је фајл измењен у последња 3 дана)
Пронађи ми све фајлове у фолдеру /tmp које је неко отварао (vi, grep, cat….) у последњих 10 дана, небитно да ли је нешто мењао или не
find /tmp/ -type f -atime -10
Објашњење:
atime – access time (мање од 10 дана)
Запакуј ми у неку архиву све фајлове у фолдеру /tmp који су данас мењани
tar -czvf ../danas_menjani_fajlovi.tar.gz `find /tmp -type f -daystart -ctime -1`
Објашњење:
ctime – фајл је промењен у ПАРАМЕТАР*24 сати (у овом случају у последњих 24 сата)
daystart – али од почетка данашњег дана
Пронађи ми све фајлове из фолдера /tmp који се не зову program.sh
find /tmp -not -name "program.sh"
Објашењење:
not (параметар) – провалите сами чему служи not
Пронађи ми све фајлове у фолдеру /tmp који су новији од фајла /home/draza/testfajl.txt
find /tmp -newer /home/draza/testfajl.txt
Пронађи ми све фајлове у фолдеру у ком се сад налазим а који имају full пермисије (777)
find . -type f -perm 0777
Пронађи ми све фајлове у фолдеру /tmp са 777 пермисијом, излистај их и промени им пермисију на 644
find /tmp -type f -perm 0777 -print -exec chmod 644 {} \;
Нађи ми све фајлове у фолдеру /tmp којима је owner draza
find /tmp -user draza
Пронађи ми све фајлове у фолдеру /tmp који су промењени у последња 2 сата (120 минута)
find /tmp -mmin -120
Објашењење:
mmin – modification time (време измене фајла) је одрађено у: -120 у последњих 120 минута, 120 пре тачно 120 минута, +120 пре више од 120 минута
Дај ми све фајлове из фолдера /tmp који су већи од 5 а мањи од 10GB
find /tmp -size +5G -size -10G
Пронађи све шпијуне у држави – и те које нађеш обради да то више не буду а и укини им нека права због шпијунаже
find /home/srbija -type f -not -user srbija -exec chown srbija {} \; -exec chmod 400 {} \;
srki
28/11/2015 @ 22:56
Svaka čast na trudu i zalaganju da ovakve tutoriale podjelite sa svima. Jedan od rjetkih blogova da se na njemu stvarno nešto može naučiti a da nije blog koji kopira strane blogove i njihove sadržaje! Nadajmo se da ukoliko budete imali vremena, da ćete nastaviti upravo sa ovakvim stvarima i kreirati određenu listu tutoriala o konfiguraciji servera (bilo kojih) i na taj način početnicima i entuzijastima malo probližiti Linux administraciju! Hvala!
Sajmon
29/11/2015 @ 14:59
Odlično. Poslednja pobedila.