Rotation des journaux
Rotation des journaux (en anglais log rotation) : opération périodique qui archive le fichier de journal courant, en ouvre un nouveau, compresse et supprime les anciens, pour borner l'espace occupé et la durée de conservation.
Pour les fichiers texte, c'est logrotate, lancé chaque jour par logrotate.timer, qui lit /etc/logrotate.conf et /etc/logrotate.d/ et mémorise ses passages dans /var/lib/logrotate/status. Une règle combine fréquence et nombre d'archives (weekly, rotate 4, maxsize 500M), compression (compress, delaycompress), nommage (dateext) et identité (su signalements signalements). Un programme écrit par un descripteur ouvert sur un inode, pas sur un nom : après le renommage, il continue d'écrire dans l'archive tant qu'on ne lui demande pas de rouvrir son fichier, d'où le signal envoyé dans postrotate (HUP pour rsyslog, USR1 pour Gunicorn). À défaut, copytruncate copie puis vide le fichier, au risque de perdre quelques lignes. Le journal de systemd tourne de lui-même (SystemMaxFileSize=, MaxFileSec=) et supprime par fichier archivé.
Message à connaître : error: skipping "..." because parent directory has insecure permissions ; logrotate refuse un répertoire inscriptible par un groupe autre que root, et la correction est une directive su, pas un changement de droits.
Dans les cours
- Linux : administration système, leçon 12 : Les journaux d'un parc de serveurs
- Linux : administration système, leçon 1 : Prendre en charge un serveur
- Linux : premiers pas, leçon 11 : Services et journaux