J'épice juste le shell script ci-dessus pour supprimer les fichiers plus anciens mais avec journalisation et calcul du temps écoulé.
#!/bin/bash
path="/data/backuplog/"
timestamp=$(date +%Y%m%d_%H%M%S)
filename=log_$timestamp.txt
log=$path$filename
days=7
START_TIME=$(date +%s)
find $path -maxdepth 1 -name "*.txt" -type f -mtime +$days -print -delete >> $log
echo "Backup:: Script Start -- $(date +%Y%m%d_%H%M)" >> $log
... code for backup ...or any other operation .... >> $log
END_TIME=$(date +%s)
ELAPSED_TIME=$(( $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
Le code ajoute quelques éléments.
- fichiers journaux nommés avec un horodatage
- dossier de journal spécifié
- find recherche les fichiers *.txt uniquement dans le dossier des journaux.
- le type f vous assure de ne supprimer que les fichiers
- maxdepth 1 vous assure de ne pas entrer dans les sous-dossiers.
- les fichiers journaux de plus de 7 jours sont supprimés (en supposant qu'il s'agit d'un journal de sauvegarde).
- note l'heure de début / fin
- calcule le temps écoulé pour l'opération de sauvegarde...
Nota pour tester le code, utilisez simplement -print au lieu de -print -delete. Mais vérifiez bien votre chemin d'accès.
Nota : Assurez-vous que l'heure de votre serveur est correctement réglée via la date - configurez le fuseau horaire/ntp correctement. Vérifiez également l'heure des fichiers avec 'stat filename'.
Nota mtime peut être remplacé par mmin pour un meilleur contrôle car mtime ignore toutes les fractions (plus vieux que 2 jours (+2 jours) signifie en fait 3 jours) lorsqu'il s'agit d'obtenir les horodatages des fichiers dans le contexte des jours
-mtime +$days ---> -mmin +$((60*24*$days))