Esta web utiliza cookies, puedes ver nuestra política de cookies, aquí Si continuas navegando estás aceptándola

Logrotate y sus misterios


Logrotate se apoya en cron para ejecutar las tareas programadas, cada 10min se ejecuta run-crons, cada 10min se comprueba si hay algo crontabeado para ser ejecutado cada hora, día, semana, mes:

cat /etc/crontab
*/10  *  * * *    root    test -x /usr/sbin/run-crons && /usr/sbin/run-crons

Este script se encarga de ejecutar crones cada hora, día, semana, mes:

for BASE in hourly daily weekly monthly ; do
    CRONDIR=/etc/cron.${BASE}

for SCRIPT in $CRONDIR/* ; do

Cada hora, día, semana, mes, se ejecuta /usr/sbin/logrotate /etc/logrotate.conf, en este ejemplo mostramos la ejecución diaria:

cat /etc/cron.daily/logrotate 
#!/bin/sh
/usr/sbin/logrotate /etc/logrotate.conf
EXITVALUE=$?
if [ $EXITVALUE != 0 ]; then
    /usr/bin/logger -t logrotate "ALERT exited abnormally with [$EXITVALUE]"
fi
exit 0

Logrotate mira la config de cada cuanto debe rotar cada fichero y en base a /var/lib/logrotate.status conoce la última vez que se rotó, según esta información procede a rotar o no:

cat /var/lib/logrotate.status
logrotate state -- version 2
"/var/log/filelog1" 2017-6-9-3:10:1
"/var/log/filelog2" 2017-5-18-3:10:1
"/var/log/filelog3" 2017-6-1-3:10:2

Podemos apreciar como la hora de rotación coincide con la guardada en el fichero /var/lib/logrotate.status.

ls -la /var/log/filelog1*
-rw-rw-r-- 1 root root  94015881 jun  9 10:18 /var/log/filelog1
-rw-rw-r-- 1 root root 471797517 abr 26 03:10 /var/log/filelog1-20170426
-rw-rw-r-- 1 root root 517655380 abr 27 03:10 /var/log/filelog1-20170427
-rw-rw-r-- 1 root root 500113058 abr 28 03:10 /var/log/filelog1-20170428

Si nos interesa que un fichero se rote a otra hora tan solo deberíamos de editar el fichero: /var/lib/logrotate.status

Como resumen rápido, cada 10min se intentam rotar todos los ficheros configurados en logrotate y se hace solo si la fecha de la última rotación en /var/lib/logrotate.status lo permite.


Autor: Kr0m -- 19/06/2017 22:06:21