Directivas de logrotate: más opciones de configuración

En nuestro post anterior compartimos dos ejemplos de configuración de logrotate. Los mismos incluyeron las directivas que habíamos explicado previamente. Sin embargo, hay muchas otras que también son útiles (ver el man page). En esta publicación explicaremos cómo chequear que las directivas de logrotate para que el funcionamiento de la herramienta sea correcto.

Directivas de logrotate

Entre las directivas de logrotate que mencionaremos al finalizar esta serie están las siguientes:

  • mail, seguido de una dirección de correo electrónico, enviará el log rotado a dicha dirección. Esto implica que en el equipo esté instalado un servidor de correo.
  • prerotate/endscript: estas dos directivas deben aparecer en líneas separadas. En medio se pueden especificar acciones que se desea que ocurran ANTES de la rotación de un log.
  • postrotate/endscript: similar al caso anterior, pero referido a acciones que deben ocurrir DESPUÉS de la rotación de un log. En ambos escenarios cuando decimos «acciones» nos referimos a la ejecución de scripts o comandos.

A continuación consideremos el siguiente ejemplo:

/var/log/miservicio {
    monthly
    create 0644 root root
    rotate 5
    size 1M
    mail root
    prerotate
       echo "Se está por rotar el log de miservicio." | mail root
    endscript
    prerotate
       /bin/systemctl reload miservicio > /dev/null 2>/dev/null || true
    endscript
}

Para empezar, este bloque indica que el log rotado correspondiente a miservicio debe enviarse al usuario root del sistema. Antes de realizar la rotación, se le debe enviar un correo electrónico con el aviso mostrado. Finalmente, debe reiniciarse el servicio (en este caso asumimos que el mismo es administrado por systemd).

Resumiendo

Una vez que hayamos terminado con la configuración en un archivo dado, podemos chequearla por errores de la siguiente manera:

logrotate -d /etc/logrotate.conf
  1. El comando anterior también nos permitirá hacer una simulación y nos mostrará si hay logs que estén por ser rotados.
  2. Logrotate es ejecutado como un cron job de manera diaria por defecto.

Podemos ver los puntos 1 y 2 en la Fig. 1 a continuación:

Chequear las directivas de logrotate
Chequear las directivas de logrotate

Espero que esta serie sobre logrotate les haya resultado útil. Si así lo fue, ¡sírvanse compartirla en las redes sociales!

¡Nos leemos en breve!