che avevo usato in precedenza un semplice comando find per eliminare tar non file utilizzati negli ultimi x giorni (in questo esempio, 3 giorni):script Bash per limitare una dimensione directory eliminando i file a cui si accede ultima
find /PATH/TO/FILES -type f -name "*.tar" -atime +3 -exec rm {} \;
Ora ho bisogno di migliorare questo script eliminando in ordine di data di accesso e le mie abilità di scrittura bash sono un po 'arrugginite. Ecco cosa ho bisogno di fare:
- controllo la dimensione di una directory/path/to/FILE
- se la dimensione in 1) è maggiore di dimensioni X, ottenere un elenco dei file in base alla data di accesso
- cancellare i file in ordine fino a quando la dimensione è inferiore a X
il vantaggio è per la cache e di backup delle directory, io eliminerà solo le cose che ho bisogno di mantenerlo entro un limite, mentre il metodo semplificato potrebbe andare oltre limite di dimensioni se un giorno è particolarmente grande. Sto indovinando che ho bisogno di usare stat e una bash per il ciclo?
Penso che questo script sia un buon inizio, ma in realtà non risponde alla domanda. Hai chiesto come eliminare i file in modo che la dimensione della directory rientri sotto la soglia. La tua risposta qui non sembra cancellare nulla, semplicemente ordina i file e li scorre attraverso di essi. Sembra che ti manchi un "rm" qui da qualche parte. –