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 find
strumento .
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 f
lì per assicurarti che elimini solo i file, non intere directory.
Potresti voler verificare tmpwatch
quale può essere inserito in un processo cron. Non c'è bisogno di roll-your-own with find
. Su RHEL è tmpwatch
nell'RPM.
find
.
find
può filtrare in base all'atime. La "correttezza" di atime dipendenoatime
almeno dalla configurazione (vedi ).