Tutorial Logrotate

Beaucoup de programmes Unix génèrent des fichiers log contenant des informations relatives à leur exécution. Logrotate est un utilitaire Unix permettant de gérer ces fichiers, et en particulier de les archiver automatiquement, de les compresser ou de les envoyer par email.
Dans ce tutorial, nous allons détailler les multiples usages de logrotate, et, à travers quelques exemples, les options correspondantes.
Emplacement des fichiers
Logrotate est généralement situé dans le répertoire /usr/sbin/, on entrera donc /usr/sbin/logrotate pour le lancer.
Sur les systèmes Linux, Logrotate est exécuté chaque jour par cron. /etc/cron.daily/logrotate est le script lancé par cron, et /etc/logrotate.conf le fichier de configuration associé.
De même, les fichiers de configuration placés dans le répertoire /etc/logrotate.d seront exécutés.
Archivage des fichiers
Les fichiers log sont continuellement nourris d'informations par les programmes qui les ont créés, et occupent par conséquent toujours davantage d'espace disque. Logrotate permet d'assurer la rotation de ces fichiers, c'est-à-dire de renommer le fichier existant (quand par exemple il dépasse une certaine taille) afin qu'un nouveau fichier soit créé à sa place. L'ancien fichier peut alors être archivé et compressé, ou tout simplement supprimé.
Principales options
num | Nombre maximal d'archives |
size | Archive le fichier lorsqu'il dépasse une certaine taille |
daily / weekly / monthly | |
notifempty | Le ficher est laissé tel quel s'il est vide |
compress | L'archive créée sera compressée |
missingok | Ne pas produire de message d'erreur si le fichier n'existe pas |
create mode user / group | Créer le nouveau fichier log avec ces attributs |
Exemple
Fichier de configuration
/var/log/fichier.log {
weekly
missingok
notifempty
create 0600 root root
}
Ce fichier de configuration, placé dans /etc/logrotate.d sera exécuté chaque jour. Logrotate procédera donc à l'archivage du fichier /var/log/fichier.log, chaque semaine (option: weekly).
Aucune action ne sera exécutée si le fichier est vide (option: notifempty) et aucun message d'erreur envoyé si le fichier est manquant (missingok).
Enfin, le nouveau fichier sera créé avec le mode 0600 et appartiendra à l'utilisateur root ainsi qu'au groupe root.