Rotation des logs d'un cron job avec logrotate

Rotation de journaux d'un job cron avec logrotate.

Publié le 16/11/2014

Création d'un répertoire de sortie pour les logs de la sauvegardes MySQL

mkdir /data /data/logs /data/logs/cron

Création du fichier de configuration logrotate pour notre service. Nous allons prendre ici l'exemple d'un script shell de sauvegarde MySQL.

nano /etc/logrotate.d/mysql-backup


/data/logs/cron/*.log {
rotate 7
daily
compress
missingok
nocreate
}

Création du script de sauvegarde MySQL :

mkdir /var/scripts/ nano /var/scripts/mysql_backup.sh #!/bin/sh cd /var/scripts /var/backups /var/backups/mysql /usr/bin/mysqldump -u USERNAME -pPASSWORD -A > /var/backups/mysql/database.sql

Changer les permissions pour rendre le script executable :

chmod +x /var/scripts/mysql_backup.sh

Ajout du script aux jobs cron :

* * * * * /var/scripts/mysql_backup.sh > /data/logs/cron/mysql-backup.log 2>&1

Ici toute les minutes pour le test.

Forcer l'execution du script logrotate pour tester :

logrotate -f /etc/logrotate.conf

Ajout du script log rotate à /etc/crontab :

nano /etc/crontab

Le logrotate s'éxécutera à l'heure du daily job indiqué dans le fichier /etc/crontab.