După ce am automatizat backup-ul serverului VPS, inevitabil trebuie șterse fișierele mai vechi de un anumit număr de zile. Pentru a evita ștergerea lor manuală (ceea ce presupune conectarea la server sau, în cazul meu, la folderul din Digi Storage unde se face backup-ul, operațiune care poate deveni plicticoasă), se poate scrie o singură linie în unul din cele două scripturi pe care le folosesc pentru backup descrise în articolul menționat anterior (am preferat s-o scriu în scriptul care se execută ultimul).
Linia este, de fapt, o comandă find
cu câteva opțiuni avansate:
find /mnt/digi/ -type f -mtime +4 -exec rm -- {} \;
Explicație
- /mnt/digi/ - este, evident, calea către directorul unde se vor căuta fișierele mai vechi de n zile (înlocuiți cu calea către directorul dorit de voi)
- -type f - comanda se va aplica numai fișierelor
- -mtime +4 - acest argument se folosește pentru a specifica fișierele care se vor șterge (am ales să șterg fișierele mai vechi de 4 zile) - mtime - se referă la zile
- -exec - acest argument permite transmiterea rezultatului comenzii
find
către o altă comandă (rm
în cazul nostru)
În mod asemănător, putem face următoarele:
- găsi și șterge fișierele modificate în ultimele 30 de minute (mmin se referă la minute):
find /tmp/ -type f -mmin 30 -exec rm {} \;
- forța ștegerea fișierelor mai vechi de 30 de zile dintr-un director (de exemplu /tmp):
find /tmp -mtime +30 -exec rm -f {} \;
- muta fișierele mai vechi de 30 de zile și să le arhivăm, păstrând structura directoarelor (opțiunea
-t
a comenziimv
se asigură că structura directoarelor este păstrată):
find /tmp -mtime +30 -exec mv -t {} /archive/directory/ \;
Aceste comenzi se pot pune și separat într-o sarcină cron și funcționează în orice distribuție Linux.
Lasă un răspuns