Voici ma configuration de rotation des logs pour /var/log/messages.
/var/log/messages
{
rotate 4
size 100M
missingok
notifempty
compress
delaycompress
sharedscripts
postrotate
ifconfig eth0 | grep 'Device not found' &>/dev/null
if [ $? != 0 ]; then
kill -HUP $(cat /var/run/rsyslog.pid) > /dev/null
else
kill -HUP $(cat /var/run/rsyslog_1.pid) > /dev/null
fi
endscript
}
Je me suis retrouvé dans une situation où logrotate a créé messages.1 où mes logs précédents sont copiés et rsyslog continue d'écrire dans messages.1 (peut-être à cause de delaycompress). Maintenant, le fichier messages est créé à nouveau lors de la rotation des logs et sa taille est de zéro.
Comme j'ai beaucoup de logs activés pour mon application et que rsyslog continue d'écrire dans messages.1, celui-ci est devenu supérieur à 3 Go tandis que le fichier messages est à zéro.
Y a-t-il une erreur dans ma configuration ou dois-je activer/désactiver certaines fonctionnalités de logrotate pour ne jamais me retrouver dans ce type de situation ?
# logrotate --version
logrotate 3.8.7