Vorrei eseguire un cron job notturno che elimina tutti i file in una cartella a cui non è stato effettuato l'accesso da almeno una settimana. Qual è il modo più efficace per farlo in bash?
Vorrei eseguire un cron job notturno che elimina tutti i file in una cartella a cui non è stato effettuato l'accesso da almeno una settimana. Qual è il modo più efficace per farlo in bash?
Risposte:
Vuoi lo findstrumento .
find folder -depth -type f -atime +7 -delete
(Ciò eliminerà tutti i file ( solo quelli normali , senza pipe, dispositivi speciali, directory, collegamenti simbolici) nella cartella data e tutte le sottodirectory (ricorsivamente) in cui l'ultimo tempo di accesso è più lungo di 7 giorni fa.)
-type flì per assicurarti che elimini solo i file, non intere directory.
Potresti voler verificare tmpwatchquale può essere inserito in un processo cron. Non c'è bisogno di roll-your-own with find. Su RHEL è tmpwatchnell'RPM.
find.
findpuò filtrare in base all'atime. La "correttezza" di atime dipendenoatimealmeno dalla configurazione (vedi ).