Los servidores generan registros continuamente: del sistema y de los servicios que configuramos. Sin ningún control, esos archivos crecen indefinidamente hasta llenar el disco. logrotate es la herramienta estándar en sistemas tipo Unix para gestionar esta rotación de forma automática.
La configuración de logrotate se divide en el archivo principal (/etc/logrotate.conf) y
los archivos por servicio en /etc/logrotate.d/. La mayoría de paquetes instalados con
apt ya incluyen su propia configuración ahí.
Un ejemplo de configuración para los logs de Apache:
/var/log/apache2/*.log {
weekly
rotate 4
compress
missingok
notifempty
}
Las opciones principales son:
weekly: rotar una vez a la semana (también existedailyymonthly)rotate 4: conservar 4 copias antiguas antes de borrarcompress: comprimir los logs rotados con gzipmissingok: no dar error si el archivo no existenotifempty: no rotar si el archivo está vacío
Para aplicar la configuración manualmente (útil para probar):
sudo logrotate -f /etc/logrotate.d/apache2
Con -d podemos ver qué haría sin ejecutarlo realmente:
sudo logrotate -d /etc/logrotate.d/apache2
logrotate se ejecuta automáticamente cada día desde
cron (hay una entrada en
/etc/cron.daily/), así que una vez configurado no necesita intervención manual.