Logrotate

Logrotate est un programme qui permet de gérer les fichiers de logs que l'on a sur une machine Linux. Concrètement cela consiste à permuter les fichiers de logs c'est-à-dire de changer de fichier pour ne pas qu'il soit trop volumineux, de les renommer, de les déplacer et/ou de les compresser pour qu'ils prennent moins de place. C'est un outil indispensable, c'est pourquoi il est installé par défaut sur toutes les distributions Linux.

Son fichier principal est /etc/logrotate.conf, mais comme souvent il inclue tous les fichiers de configuration déposés dans /etc/logrotate.d/. La syntaxe est la suivante :

cible(s)
{
   paramètres
}

Examinons le fichier /etc/syslog.d/syslog qui s'occupe des logs générés par le programme syslog :

/var/log/cron
/var/log/maillog
/var/log/messages
/var/log/secure
/var/log/spooler
/tmp_user/toto/logs/*log
{
    sharedscripts
    postrotate
        /bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true
    endscript
}

Les autres options non spécifiées ici seront récupérées dans /etc/logrotate.conf, à savoir :

rotate 4           # on ne conserve que les 4 plus récents fichiers de logs
dateext            # on suffixe les fichiers avec la date de la rotation

D'autres options utiles sont disponibles, notamment :

Paramètres en CLI

Pour tester un fichier de configuration, utiliser l'option -v (verbose) ou -d (debug) ; cela a pour effet de simuler la rotation mais ne modifiera aucun fichier :

logrotate -d /etc/logrotate.d/test

L'utilisation de l'option -f (force) a pour effet de forcer une rotation même si logrotate ne jugeait pas nécessaire de le faire.