Logrotate(8) cambia, comprime y envía por correo archivos de registro del

SINOPSIS

logrotate [-dv] [-s|--archivo de estado] archivo_de_configuración+

DESCRIPCIÓN

Logrotate ha sido diseñado para facilitar la administración de sistemas que generan gran cantidad de archivos de registro (logs). El programa permite el cambio, compresión, eliminación y envío automático por correo de los archivos de registro. Cada archivo puede ser tratado diariamente, semanalmente, mensualmente o siempre que se haga demasiado grande.

Normalmente, logrotate se ejecuta como tarea diaria de tipo cron. El programa no modificará un archivo repetidas veces a no ser que el criterio para ese archivo se base en el tamaño del mismo y logrotate se ejecute varias veces al día.

En la línea de comandos pueden indicarse un número ilimitado de archivos de configuración. Más tarde, estos archivos de configuración pueden invalidar las opciones dadas en archivos de configuración anteriores, por lo tanto, el orden en que se listan los archivos de configuración de logrotate es muy importante. Normalmente, debería usarse un sólo archivo de configuración que incluya tantos otros archivos de configuración como sean necesarios. Véase más abajo cómo usar la directiva include para conseguirlo. Si se proporciona un nombre de directorio en la línea de comandos, cada uno de los archivos que se encuentren en ese directorio se usará como archivo de configuración.

OPCIONES

-d
Activa el modo de depuración e implica -v. En modo de depuración, no se efectuará ningún cambio a los archivos de registro ni al archivo de estado de logrotate.

--usage
Muestra un pequeño mensaje de uso, versión y copyright.

ARCHIVO DE CONFIGURACIÓN

logrotate lee toda la información necesaria sobre los archivos de registro que debe manejar de la serie de archivos de configuración que se especifiquen en la línea de comandos. Cada archivo de configuración puede establecer opciones globales (las definiciones locales anulan a las globales, y aquellas definiciones efectuadas en último lugar anulan siempre a las anteriores) y especificar el archivo de registro que se ha de cambiar. Un archivo de configuración simple sería el siguiente:

# sample logrotate configuration file
errors [email protected]
compress
/var/log/messages {
    rotate 5
    weekly
    postrotate
                              /sbin/killall -HUP syslogd
    endscript
}
/var/log/httpd/access.log {
    rotate 5
    mail [email protected]
    errors [email protected]
    size=100k
    postrotate
                              /sbin/killall -HUP httpd
    endscript
}
/var/log/news/* {
    monthly
    rotate 2
    errors [email protected]
    postrotate
                              kill -HUP `cat /var/run/inn.pid`
    endscript
    nocompress
}

Las primeras líneas establecen opciones globales; cualquier error que ocurra durante el procesamiento de los archivos de registro se envía por correo a sysadmin.org y los archivos de registro se comprimen después de ser cambiados. Nótese que pueden aparecer comentarios en cualquier parte del archivo de configuración siempre y cuando el primer espacio que no está en blanco en la línea sea un #.

La siguiente sección del archivo de configuración especifica la acción a realizar sobre el archivo de registro /var/log/messages. El archivo sufrirá cinco cambios semanales antes de ser eliminado. Después de que el archivo ha sido modificado (pero antes de haberse comprimido la versión antigua del mismo) se ejecutará el comando /sbin/killall -HUP syslogd.

La siguiente sección define los parámetros de /var/log/http/access.log. Éste se cambia siempre y cuando excede los 100k de tamaño, y los archivos de registro antiguos se envían (sin comprimir) a [email protected] después de haber sufrido cinco cambios, en vez de ser eliminados. Del mismo modo, cualquier error que pueda ocurrir durante el procesamiento del archivo de registro se envía a [email protected] (anulando así la directiva global errors)

La última sección define los parámetros para todos lo archivos en /var/log/news. Cada archivo se cambia mensualmente y los errores se envían a [email protected].Ésta se considera una directiva de cambio simple y si ocurre un error para más de un archivo se envía en un único mensaje. En este caso, los archivos de registro no se comprimirán.

A continuación se proporciona más información sobre las directivas que se pueden incluir en un archivo de configuración de logrotate:

compress
Las versiones antiguas de los archivos de registro se comprimen con gzip. Véase también nocompress.

copytruncate
Trunca el archivo de registro original en el lugar en el que se encuentre tras crear una copia, en vez de mover el archivo antiguo y crear una nuevo opcionalmente. Se puede usar cuando a algún programa no se le puede ordenar que cierre su archivo de registro y por lo tanto podría seguir escribiendo (añadiendo) continuamente en el archivo de registro anterior. Nótese que transcurre una fracción de tiempo muy pequeña entre el copiado del archivo y su truncado, por lo que se podrían perder algunos datos. Cuando se usa esta opción, no tendrá efecto la opción create, dado que el archivo antiguo permanecerá en su lugar.

create mode owner group
Se crea el archivo de registro (con el mismo nombre del archivo de registro que se acaba de rotar) inmediatamente después del cambio (antes de que se ejecute el script postrotate). mode especifica el modo del archivo de registro en octal (al igual que chmod (2)), owner especifica el nombre del usuario al que pertenecerá el archivo de registro, y group especifica el grupo al que pertenecerá el archivo. Se puede omitir cualquiera de los atributos del archivo de registro, en cuyo caso, el nuevo archivo usará los valores del archivo antiguo para aquellos atributos que se hayan omitido. Esta opción se puede anular usando la opción nocreate.

daily
Los archivos de registro se cambian diariamente.

delaycompress
Pospone la compresión del archivo de registro anterior hasta el siguiente ciclo de rotación. Sólo tiene efecto cuando se usa en combinación con compress. Se puede usar cuando no se puede ordenar a un programa que cierre su archivo de registro y podría continuar escribiendo en él durante algún tiempo.

errors address
Cualquier error que ocurra durante el procesamiento de los registros se enviará a la dirección de correo que se especifique.

ifempty
Cambia el archivo de registro incluso si está vacío, anulando la opción notifempty (opción por defecto).

include file_or_directory
Lee el archivo dado como argumento como si se incluyese donde aparece la directiva include. Si se da un directorio, la mayoría de los archivos se leen antes de que continúe el procesamiento del archivo en el que se incluyen. Los únicos archivos que se ignoran son archivos que no son corrientes (tales como directorios y pipes con nombre) y aquellos archivos cuyos nombres terminan con una de las extensiones tabú según se especifica en la directiva tabooext. La directiva include puede no aparecer en la definición de un archivo de registro.
monthly
Los archivos de registro se cambian la primera vez que se ejecuta logrotate en un mes (normalmente el primer día del mes).

nocompress
Las versiones antiguas de los archivos de registro no se comprimen con gzip. Véase también compress.

nocopytruncate
No trunca el archivo de registro original en el lugar en el que se encuentre tras crear una copia. (Esto anula la opción copytruncate).

nocreate
No se crean archivos de registro nuevos (esto anula la opción create).

nodelaycompress
No pospone la compresión del archivo de registro anterior hasta el próximo ciclo de cambio (esto anula la opción delaycompress).

nomail
No envían los archivos de registro antiguos a ninguna dirección de correo.

noolddir
Los archivos se cambian en el mismo directorio en el que el archivo reside normalmente (esto anula la opción olddir).

notifempty
No rota el archivo de registro si está vacío (esto anula la opción ifempty).

olddir directory
Los archivos de registro se mueven a directory para su rotación. El directory debe encontrarse en el mismo dispositivo físico que el archivo de registro que se va a cambiar. Cuando se usa esta opción, todas las versiones antiguas del archivo de registro van a parar a directory. Esta opción puede anularse por medio de la opción noolddir.

postrotate/endscript
Las líneas entre postrotate y endscript (ambas deben aparecer en líneas por separado) se ejecutan una vez que el archivo de registro ha sido rotado. Estas directivas sólo pueden aparecer dentro de una definición de archivo de registro. Véase también prerotate.

prerotate/endscript
Las líneas entre prerotate y endscript (ambas deben aparecer en líneas por separado) se ejecutan una vez que el archivo de registro ha sido rotado. Estas directivas sólo pueden aparecer dentro de una definición de archivo de registro. Véase también postrotate.

rotate count
Los archivos de registro se cambian <count> veces antes de ser eliminados o enviados a la dirección especificada en una directiva mail. Si count es 0, las versiones antiguas se eliminarán en vez de ser cambiadas.

size size
Los archivos de registro se cambian cuando superan el tamaño de size bytes. Si a size le sigue M, se asume que se está indicando el tamaño en megabytes. Si se usa k, el tamaño será en kilobytes. Por lo tanto son válidos tanto size 100 como size 100k y size 100M.

tabooext [+] list
Se cambia la lista actual de extensiones tabú (véase la directiva include si se desea información sobre las extensiones tabú). Si un + precede a la lista de extensiones, la lista actual de extensiones tabú se aumenta, de otro modo se reemplaza. Al comienzo, la lista de extensiones tabú contiene .rpmorig, .rpmsave, ,v y ~.

weekly
Los archivos de registro se cambian si el día de la semana actual es menor que el día de la semana del último cambio o si ha pasado más de una semana desde el último cambio. Normalmente, esto es lo mismo que cambiar los archivos el primer día de la semana, pero funciona mejor si logrotate no se ejecuta todas las noches.

AUTOR

Erik Troan <[email protected]>