User Tools

Site Tools


informatique:linux:logrotate

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Last revisionBoth sides next revision
informatique:linux:logrotate [2015/08/21 14:21] – effacée pteuinformatique:linux:logrotate [2020/02/24 10:25] – [Paramètres en CLI] pteu
Line 1: Line 1:
 +======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 :
 +<code bash>
 +cible(s)
 +{
 +   paramètres
 +}
 +</code>
 +
 +Examinons le fichier ''/etc/syslog.d/syslog'' qui s'occupe des logs générés par le programme syslog :
 +<code bash>
 +/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
 +}
 +</code>
 +  * on voit que ce fichier cible plusieurs fichiers situés dans ''/var/log'' : cron, maillog, messages, secure et spooler. A noter qu'on peut utiliser des jokers (par exemple ''/var/log/*.log'' pour cibler tous les fichiers ''.log'' du répertoire ''/var/log''
 +  * la section **postrotate** / **endscript** encadre une ou des lignes de script qui seront effectuer juste après la rotation de logs ; ici on relance le démon syslogd.
 +  * **sharedscript** spécifie que la section **postrotate** ne s'exécutera qu'une seule fois pour toutes les cibles. En effet il serait inutile de relancer syslogd  cinq fois de suite !
 +
 +Les autres options non spécifiées ici seront récupérées dans ''/etc/logrotate.conf'', à savoir :
 +<code bash>
 +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
 +</code>
 +
 +D'autres options utiles sont disponibles, notamment :
 +  * ''daily'' | ''weekly'' | ''monthly'' | ''yearly'' : spécifie l'intervalle de rotation (weekly = une fois par semaine)
 +  * ''size <taille>'' : provoque une rotation quand le fichier cible dépasse cette taille (on peut utiliser rien, k ou M pour préciser l'unité)
 +  * ''minsize <taille>'' : définie la taille minimal du fichier de log, sinon on ne le traite pas
 +  * ''compress'' : permet de compresser les fichiers de logs
 +  * ''delaycompress'' : ne compresse pas le premier fichier de rotation (c'est le fameux "messages.1" au milieu des messages.X.gz)
 +  * ''missingok'' : continue le traitement même en cas de fichier manquant
 +  * ''create <umask> <user> <group>'' : indique les attributs des fichiers créés (l'umask ainsi que l'utilisateur et le groupe)
 +  * ''olddir <dir>'' : indique le répertoire où déplacer les fichiers pour effectuer la rotation (NB : ce répertoire doit être sur le même périphérique physique que le journal en cours de permutation)
 +  * ''sharedscripts'' : précise à logrotate de n'exécuter qu'une fois le script de postrotate par bloc. C'est utile par exemple pour éviter de relancer le démon Apache après la rotation de son access.log, puis à nouveau pour son error.log.
 +
 +
 +=====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 :
 +<code bash>
 +logrotate -d /etc/logrotate.d/test
 +</code>
 +
 +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.
informatique/linux/logrotate.txt · Last modified: 2021/06/21 07:49 by pteu