Basta vivacizzare lo script di shell per eliminare i file più vecchi
#!/bin/bash
timestamp=$(date +%Y%m%d_%H%M%S)
path="/data/backuplog"
filename=log_back_$timestamp.txt
log=$path/$filename
find $path -name "*.txt" -type f -mtime +7 -print -delete >> $log
echo "Backup:: Script Start -- $(date +%Y%m%d_%H%M)" >> $log
START_TIME=$(date +%s)
... code for backup ...or any other operation ....
END_TIME=$(date +%s)
ELAPSED_TIME=$(expr $END_TIME - $START_TIME)
echo "Backup :: Script End -- $(date +%Y%m%d_%H%M)" >> $log
echo "Elapsed Time :: $(date -d 00:00:$ELAPSED_TIME +%Hh:%Mm:%Ss) " >> $log
La build del codice sulla risposta di Sputnick e aggiunge un paio di cose.
- file di registro denominato con un timestamp
cartella
- log specificato
- find ricerca i file * .txt solo nella cartella di registro
- file di log più vecchi di 7 giorni vengono eliminate (sempre che sia per un registro di backup)
- note l'ora di inizio/fine
- calcola il tempo trascorso ...
si fecero a h dare un'occhiata a 'man date'? – Jens
Hai bisogno di cancellare in base al nome del file o al tempo di modifica del file? – Barmar
ho bisogno di un intero script :) trovo un esapmo ma non sono sicuro che questo sia un buon risultato: trovare/home/script /. -name '* .script' -mtime +10 -exec rm -rf '{}' \; – Steve88