J’ai un job cron qui crée une sauvegarde de firebase database tous les jours à 3h30 du matin.
La nomenclature du nom de fichier est live_YYYY_MM_DD.sql.gz où AAAA, MM et JJ sont les dates du jour où la sauvegarde a été effectuée.
Normalement, j’entre et supprime les anciennes sauvegardes, mais je souhaite limiter le nombre de sauvegardes aux trois plus récentes. Est-il possible de le faire via un processus ou un script?
Merci
modifier:
J’ai édité logrotate.conf selon http://www.thegeekstuff.com/2010/07/logrotate-examples/
Un script shell simple peut faire l’affaire, mais vous feriez mieux d’apprendre l’outil standard pour le faire: logrotate . Lorsque vos besoins en matière de gestion de fichiers de sauvegarde plus anciens changent, au lieu de modifier un script maison, il suffira de modifier une entrée de configuration logrotate.
ls -t live_*.sql.gz|awk 'NR>3'|xargs echo
Si cela fait écho aux bons fichiers, utilisez rm
au lieu de echo
. Placez-le au bon endroit dans votre script de sauvegarde et vous n’avez pas besoin d’installer logrotate.