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
informatique:linux:logrotate [2015/08/21 14:21] – effacée pteuinformatique:linux:logrotate [2021/06/21 07:49] (current) – [Logrotate] 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
 +  * ''notifempty'' ne pas effectuer la rotation si le fichier est vide
 +  * ''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.1440166896.txt.gz · Last modified: 2015/08/21 14:21 by pteu