Rotación de registros en Debian
El paquete logrotate proporciona un método normalizado para rotar archivos de registro con las siguientes posibilidades:
- Cubrir un número amplio de archivos en una única definición
- Conservar un número fijo de copias
- Comprimir las copias
- Ejecutar programas tras la rotación
Logrotate dispone de un archivo de configuración llamado /etc/logrotate.conf que determina opciones de trabajo generales y la inclusión de los archivos del directorio /etc/logrotate.d, siendo ésta opción la más interesante puesto que permite a cada paquete incluir su propia disposición de rotados, así como a un administrador de sistemas añadir la suya propia.
En cada archivo de este tipo se pueden definir rotaciones para archivos ó conjuntos de archivos como la siguiente:
/var/log/fred/*.log {
daily
missingok
rotate 7
compress
delaycompress
notifempty
create 640 fred fred
sharedscripts
postrotate
/etc/init.d/fred restart
endscript
}
en el que estamos indicando lo siguiente:
- Aplicar a todos los archivos con extensión .log en el directorio /var/log/fred/
- Rotar diariamente (daily) si no están vacíos (notifempty)
- No conservar más de siete días con contenido en un momento dado (rotate 7)
- Comprimir todos los archivos rotados excepto la de ayer (compress y delaycompress)
- Crear los nuevos archivos propiedad de fred y con permisos 0640 (create 640 fred fred)
- Reiniciar el servicio fred (postrotate) tras la rotación de cada uno de los archivos y no al final de todos ellos (sharedscripts).
Verificando
Para comprobar si nuestras disposiciones son correctas se puede usar el siguiente programa:
# logrotate --debug --force myarchivo