DOKK / manpages / debian 12 / manpages-es / logrotate.conf.5.es
LOGROTATE(8) Manual del Administrador del Sistema Linux LOGROTATE(8)

logrotate - rota, comprime y envía por correo electrónico archivos de registro del sistema

logrotate [--force] [--debug] [--state archivo] [--skip-state-lock] [--wait-for-state-lock] [--verbose] [--log archivo] [--mail orden] archivo_de_configuración [archivo_de_configuración2 ...]

Logrotate ha sido diseñado para facilitar la administración de sistemas que generan gran cantidad de archivos de registro (logs). El programa permite la rotación, compresión, eliminación y envío por correo electrónico de los archivos de registro. Puede planificarse la rotación de cada archivo de forma diaria, semanal, mensual o cuando alcance un determinado tamaño.

En general, logrotate se ejecuta diariamente mediante cron. No se modificará un archivo de registro varias veces al día excepto que se haya definido una regla según su tamaño y que logrotate se ejecute más de una vez al día. También puede ocurrir si se usa la opción -f o --force.

En la línea de órdenes pueden indicarse un número ilimitado de archivos de configuración. Estos archivos de configuración podrán invalidar las opciones dadas en archivos anteriores. Esto hace que el orden en que se listan los archivos de configuración de logrotate sea muy importante. Lo habitual es usar un solo archivo de configuración que incluya tantos otros archivos de configuración como sean necesarios. Vea a continuación el uso de la directiva include para conseguirlo. Si se proporciona un nombre de directorio en la línea de órdenes, cada uno de los archivos que se encuentren en ese directorio se usará como archivo de configuración.

Si no se aporta ninguna opción, la ejecución de logrotate mostrará la versión, la licencia y unas breves instrucciones de uso. Cuando ocurra algún error durante la rotación de los archivos de registro, logrotate terminará con un estado distinto de cero, aunque el archivo se actualizara.

Hará que logrotate rote el/los archivo(s) aunque no sea necesario. Esta opción puede ser útil para probar cambios en el archivo de configuración de logrotate, o cuando se borraron archivos de registro antiguos manualmente y sea necesario recrearlos de nuevo para proseguir con el registro correctamente.

Activa el modo de depuración, no se efectuará ningún cambio en los archivos de registro ni al archivo de estado de logrotate. Solo se muestran mensajes relativos a la depuración.

Indica a logrotate que debe usar un archivo de estado diferente al predeterminado. Esto es útil cuando logrotate se ejecuta con un usuario diferente para algunos archivos de registro. Para evitar su ejecución en paralelo, bloqueará su archivo de estado terminando su ejecución con un valor de salida 3 si no es capaz de bloquearlo. Por defecto, el archivo de estado es /var/lib/logrotate/status. Si se indica /dev/null como archivo de estado, logrotate no intentará escribir en él.

No bloquea el archivo de estado. Útil en caso de que el sistema lo prohiba o no tenga soporte para ello.

Espera hasta que el bloqueo del archivo de estado sea eliminado por otro proceso de logrotate. Esta opción puede provocar una espera indefinida por lo que se recomienda usarlo con precaución.

Activa el modo prolijo.Útil para mostrar mensajes durante las rotaciones.

Hace que logrotate registre su prolija salida en el archivo que se indique. Dicha salida es la misma que se produciría al ejecutar logrotate con la opción -v. Este archivo se sobreescribe con cada ejecución de logrotate.

Indica a logrotate qué orden utilizar cuando envíe archivos de registro por correo electrónico. Dicha orden debería aceptar estas opciones:
1) El asunto del mensaje mediante '-s asunto'
2) el destinatario.
La orden empleada deberá leer el mensaje desde la entrada estándar y enviárselo al destinatario. Por defecto, se usará /usr/bin/mail.

Muestra una breve explicación de su uso.

-?, --help
Muestra un mensaje de ayuda.

Mostrar información de versió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 órdenes. 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:

# Ejemplo de archivo de configuración de Logrotate
errors sysadmin@my.org
compress
/var/log/messages {

rotate 5
weekly
postrotate
/usr/bin/killall -HUP syslogd
endscript } "/var/log/httpd/access.log" /var/log/httpd/error.log {
rotate 5
mail recipient@example.org
size 100k
sharedscripts
postrotate
/usr/bin/killall -HUP httpd
endscript } /var/log/news/* {
monthly
rotate 2
olddir /var/log/news/old
missingok
sharedscripts
postrotate
kill -HUP $(cat /var/run/inn.pid)
endscript
nocompress } ~/log/*.log {}

Las primeras líneas definen opciones globales. En el presente ejemplo, los archivos de registro se comprimen después de ser rotados. Observe que puede escribir comentarios en cualquier parte del archivo de configuración siempre y cuando el primer carácter (distinto de un espacio en blanco) sea #.

Se usa un espacio en blanco y/o, opcionalmente, un signo igual para separar las directivas y su correspondiente valor. Los números deberán definirse en un formato legible por strtoul(3).

La siguiente sección del archivo de configuración define la acción a realizar sobre el archivo de registro /var/log/messages. El archivo sufrirá una rotación semanal durante cinco semanas antes de ser eliminado. Después de rotar el archivo (pero antes de haberse comprimido la versión anterior) se ejecutará la orden /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 www@my.org 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 www@my.org (anulando así la directiva global errors).

La siguiente sección define los parámetros para todos los archivos contenidos en /var/log/news. Todos los archivos son rotados mensualmente.

La última sección emplea el carácter especial "~" para hacer la rotación en el directorio $HOME del usuario actual. Esto solo está disponible si la biblioteca glob del sistema incluye soporte para dicho carácter especial (como sí lo tiene GNU glob por ejemplo).

Utilice los asteriscos con precaución. Si indica "*", logrotate rotará todos los archivos incluidos los que creados en anteriores rotaciones. Una manera de evitar esto sería mediante el uso de la directiva olddir o usando los asteriscos con mayor precisión (por ejemplo *.log).

Observe que, por defecto al usar systemd(1), la opción ProtectSystem=full se define en el archivo logrotate.service. Esto evitará que logrotate modifique archivos de registro en /etc o en /usr.

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

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

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

Los archivos de registro se mueven a directorio para su rotación. El directorio 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 directorio. Esta opción puede anularse por medio de la opción noolddir.

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

Rota los archivos de registro que pertenecen a un determinado usuario y grupo en lugar de utilizar el asignado por defecto (generalmente el administrador o "root"). usuario define el nombre del usuario y grupo el grupo (consulte la sección GRUPOS Y USUARIOS para más detalles). Si el usuario/grupo que se define no tiene permisos suficientes para realizar la tarea que se defina, se emitirá un mensaje de error. Si se ejecuta logrotate como root, se recomiendo emplear su para rotar los archivos en los directorios que estén bajo control de usuarios normales.

Rota los archivos de registro cada hora. Tenga en cuenta que en ciertos casos, logrotate suele ser ejecutado por una tarea diaria de cron (o mediante logrotate.timer si se usa systemd(1)). En este caso deberá modificar la configuración para que logrotate se ejecute cada hora para poder realmente rotar los archivos cada hora.

Los archivos de registro se cambian diariamente.

Rota los archivos de registro cada dia_de_semana, o cada vez que la fecha de rotación tenga lugar siete o más días después de la anterior, independientemente de la hora exacta. La forma en que se interpreta día_de_semana es la siguiente: 0 representa al domingo, 1 representa al lunes, mientras que ..., 6 denota el sábado. El valor 7 es un valor especial que significa "cada 7 días" independientemente del día que coincida. Si no se indica ningún número, se sobreentiende 0 por defecto.

Los archivos de registro se cambian la primera vez que se ejecuta logrotate en un mes (normalmente el primer día del mes).

Hace que se roten los archivos de registro siempre y cuando el año actual sea distinto del de la anterior rotación.

Rota los archivos de registro solo si su tamaño es mayo de tamaño. Si tamaño va seguido de k se entiende dicho tamaño expresado en kilobytes, mientras que si es una M o una G se interprete an megas o gigas respectivamente. Por ejemplo: tamaño 100, tamaño 100k, tamaño 100M o tamaño 100G sería expresiones válidas para indicar dicha información. Esta opción es mutuamente excluyente de la del intervalo de tiempo ya que si indica ambas a la vez, se rotan los archivos independientemente del tiempo transcurrido desde la última vez siempre que se indique después de la del intervalo temporal. La última opción prevalece siempre sobre las anteriores.

Si no existe el archivo de registro, continúa la ejecución sin emitir ningún mensaje de error. Consulte nomissingok.

Si un archivo de registro no existe, emite un mensaje de error. Este es el comportamiento por defecto.

Ignora cualquier otra concordancia sucesiva en un archivo de registro.

Rota el archivo de registro incluso si está vacío, anulando la opción notifempty. Este es el comportamiento por defecto.

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

No rota los archivos de registro si tienen menos de <veces> días.

Elimina los archivos de registro rotados con una antigüedad superior a <días>. La antigüedad solo se comprueba si se va a rotar el archivo. rotate -1 no evita el borrado. Los archivos se envían por correo electrónico a la dirección configurada en maillast y mail.

Rota los archivos de registro cuando su tamaño sobrepasa tamaño bytes, pero nunca antes del intervalo de tiempo configurado (daily, weekly, monthly, o yearly). La opción size es similar salvo que, en ese caso, era mutuamente excluyente con las opciones de intervalo temporal y los archivos se rotaba sin tener en cuenta el tiempo transcurrido desde la última rotación si se definía esta opcion después de definir el criterio temporal (recuerde que prevalece la última opción que se ponga). Si se emplea minsize se consideran tanto el tamaño como el tiempo transcurrido desde la última rotación.

Los archivos de registro se rotan cada vez que su tamaño sobrepasa tamaño incluso antes de que transcurra el intervalo de tiempo especificado (daily, weekly, monthly, or yearly). La opción size es similar salvo que es mutuamente excluyente con el intervalo de tiempo haciendo que se haga la rotación sin tener en cuenta el momento en que se hizo la vez anterior si se define a continuación de la opción del intervalo temporal (la última opción prevalece sobre las anteriores). Cuando se usa maxsize, se tiene en cuenta tanto el tiempo transcurrido desde la última rotación como el tamaño del archivo.

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 ~

Se cambia la lista actual de extensiones tabú (consulte la directiva include si 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ú está vacía.

Justo después de la rotación y antes de que se ejecute el script postrotate, se crea el nuevo archivo de registro con el mismo nombre que el recién rotado. permisos define el modo para dicho archivo en formato octal (igual que en chmod(2)), propietario define el propietario de dicho archivo y grupo indica el grupo al que pertenece (consulte la sección GRUPOS Y USUARIOS). No es necesario definir ninguno de estos atributos, para los que no se definan se usarán los mismos que tenía el archivo rotado . Esta opción puede anularse con la opción nocreate.

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

Se crea, si no existe ya, el directorio indicado en la directiva olddir. mode define los permisos para el directorio olddir en formato octal (igual que chmod(2)), propietario define el usuario que lo va a poseer y group define el grupo al que pertenecerá (consulte la sección GRUPOS Y USUARIOS para más información). Esta opción puede anularse mediante el uso de nocreateolddir.

logrotate no crea el directorio olddir si no existe.

Crea una copia del archivo de registro sin modificar el original. Esta opción puede ser útil en caso de querer obtener una captura del archivo en un determinado instante o cuando alguna aplicación necesita partir o filtrar el archivo. Cuando se usa esta opción, queda sin efecto create ya que no se modifica nada del archivo original. La opción copy permite guardar archivos rotados en un dispositivo diferente mediante la directiva olddir.

No copia el archivo orignal y lo deja en su lugar. (Esto anula la opción copy).

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 , opcionalmente, crear otro nuevo. Se puede usar cuando a alguna aplicación 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. La opción copytruncate permite almacenar archivos rotados en dispositivos diferentes mediante la directiva olddir. La opción copytruncate implica norenamecopy.

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).

Se renombra el archivo de registro temporalmente y dentro del mismo directorio añadiéndole la extensión ".tmp". A continuación se ejecuta el script postrotate que pone el nombre definitivo al archivo. Este permite almacenar archivos de registro ya rotados en dispositivos diferentes mediante la directiva olddir. Al final se borran los archivos temporales. La opción renamecopy permite almacenar archivos rotados en dispositivos diferentes empleando la directiva olddir. La opción renamecopy implica nocopytruncate.

No copia el archivo original y lo deja en su lugar. (Esto anula la opción renamecopy).

Borra los archivos de registro mediante shred -u en lugar de usar unlink(), imposibilitando su lectura posterior. Por defecto está desactivado.

No emplea shred al borrar antiguos archivos de registro. Consulte shred.

Indica a GNU shred(1) que sobreescriba los archivos count veces antes de borrarlos. Si no se define esta opción, se usará la configuración por defecto de shred.

Rota archivos con varios enlaces duros. Desactivado por defecto. Puede provocar que se vacíen los archivos de destino, p.ej. con shred o copytruncate. Utilícelo con cautela espacialmente cuando se roten archivos como administrador.

No se rotan archivos con varios enlaces duros. Consulte allowhardlinks.

Las versiones antiguas de los archivos de registro se comprimen con gzip(1). Consulte nocompress.

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

Define le aplicación que se usará para comprimir los archivos de registro. Por defecto, se usará gzip(1). Consulte compress.

Define la aplicación que se usará para descomprimir archivos. Por defecto se usa gunzip(1).

Define la extensión que se añade a los archivos comprimidos cuando esté activa la compresión de los mismos. Por defecto se dejará la de la aplicación que los comprimió.

Existe la posibilidad de pasarle opciones al programa de compresión. Por defecto, para gzip(1), será "-6" (lo que representa un alto nivel de compresión a expensas de una mayor lentitud). Si utiliza otra aplicación para comprimir, seguramente sea necesario varias esta opción.

Pospone la compresión del archivo de registro anterior hasta el siguiente ciclo de rotación. Solo 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.

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

Si tiene un archivo con la extensión ext puede optar por mantenerla también en los archivos rotados. Si se comprimen, la extensión (normalmente .gz se pone a continuación de ext. Suponga, por ejemplo, que tiene un archivo de registro llamad mireg.foo y desea que el originado en la rotación se llame mireg.1.foo.gz en lugar de mireg.foo.1.gz como lo haría por defecto.

La extensión ext del los archivos de registro se añade después de la rotación. Si el archivo original tiene una extensión ext, ésta no se duplica sino que se desplaza al final, es decir que tanto nombre_archivo como nombre_archivo.ext se convierten en nombre_archivo.1ext. Si se utiliza compresión, su extensión (normalmente .gz) suele añadirse después de ext.

Es la cifra que se usará como base para las rotaciones. Por ejemplo, si los define como 0, los archivos rotados se crearán con la extensión .0. Si lo define como 9, se crearán como .9 saltándose 0–8. El número de rotación a conservar sigue estando definido en la directiva rotate.

Guarda las distintas versiones de los archivos de registro añadiendo una extensión del tipo AÑOMESDIA en lugar de añadir un simple número. Esta extensión puede configurarse mediante las opciones dateformat y dateyesterday.

No añade una extensión con la fecha a los archivos de registro que guarda (este sobresee la opción dateext).

Define la extensión para dateext empleando una notación similar a la función strftime(3). Solo es posible utilizar las variables %Y %m %d %H %M %S %V y %s. El valor por defecto es -%Y%m%d salvo en el caso de que la rotación sea horaria que sería -%Y%m%d%H. Observe que el carácter que separa el nombre del archivo de su extensión es parte de la fecha. La fecha del sistema debe ser posterior al 9 de septiembre de 2001 para que la variable %s se sustituya correctamente. Tenga en cuenta también que las fechas y horas creadas con ese formato deben ser ordenables según el número, esto es primero el año, luego el mes y finalmente el día, es decir 2001/12/01 sería correcto mientras que 01/12/2001 no lo sería (sale antes al ordenarlo porque empieza por 0 y no por 2). Esto es debido a que al ejecutar la función rotate, logrotate ordena todos los nombres de archivo para ver cual es el más antiguo y,si procede, borrarlo.

Emplea la fecha del día anterior para crear la extensión dateext, así el nombre del archivo rotado contiene una fecha que coincide con su marca de tiempo.

Emplea la hora anterior para crear la extensión dateext, así el nombre del archivo rotado contiene una hora que coincide con su marca de tiempo. Útil cuando se planifican rotaciones con hourly.

Cuando un archivo rotado va a ser borrado, se envía por mail a dirección. Si se quiere que no se envíe ningún correo electrónico, se debe usar la directiva nomail.

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

Cuando se usa la orden mail, se envía el archivo recién rotado en lugar de enviar el que se va a borrar.

Cuando se usa la orden mail, se envía el archivo rotado que va a ser borrado en lugar de hacerlo con el recién rotado. Este es el comportamiento por defecto.

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 por orden alfabético antes de que continúe el procesamiento del archivo en el que se incluyen. Los únicos archivos que se ignoran son archivos no habituales (tales como directorios y tuberías con nombre) y aquellos archivos cuyos nombres terminan con una de las extensiones tabú según se especifica en la directiva tabooext o taboopat. La ruta que se indique puede comezar con ~/ para que sea relativa al directorio home del usuario que lo ejecuta. Por razones de seguridad, solo se permite que los permisos de los archivos de configuración incluyan derechos de escritura para su propietario.

En general, los script prerotate y postrotate se ejecutan para cada archivo de registro que precisa ser rotado y la ruta absoluta se proporciona como primer argumento de dichos script. Esto significa que un mismo script se ejecuta tantas veces como archivos de registro coincidan con el patrón dado, por ejemplo /var/log/news/* coinciden con todos los archivos dentro de la carpeta news. Si se define la opción sharedscripts, los script reciben el patrón a procesar y solo se ejecutan una vez sin importar los archivos que coincidan. Sin embargo, si ninguno de los archivos necesita ser rotado, el script no se ejecuta. Si el el script finaliza con un error (o no es posible rotar algún archivo), no se ejecutará ninguna de las otras acciones planificadas en ningún archivo. Esta opción sobresee nosharedscript.

Ejecuta los script prerotatey postrotate para cada archivo de registro a rotar siendo éste el comportamiento por defecto (sobresee la opción sharedscript). La ruta absoluta del archivo de registro se proporciona en el primer argumento del script. La ruta absoluta del último archivo rotado se pasa como segundo argumento de script postrotate. Si el script termina con un error, no se ejecutarán el resto de acciones planificadas pero solo para ese archivo concreto.


    script

registro que coinciden con el patrón aportado, antes de ejecutar el script prerotate y únicamente si al menos un archivo ha sido rotado. Esta directiva solo se emplea dentro de una definición de archivo de registro. Se pasa el patrón completo como primer argumento del script. Si finaliza con un error, no se sigue procesando nada. Consulte las secciones de lastaction y SCRIPTS.


    script

registro que coinciden con el patrón aportado, después de ejecutar el script postrotate y únicamente si al menos un archivo ha sido rotado. Esta directiva solo se emplea dentro de una definición de archivo de registro. Se pasa el patrón completo como primer argumento del script. Si finaliza con un error, no se sigue procesando nada. Consulte las secciones de firstaction y SCRIPTS.


    script

y únicamente si va a ser rotado. Estas directivas solo se utilizan en la definición de un archivo de registro. En general, se pasa la ruta absoluta del archivo de registro como primer argumento del script. Si se utiliza la directiva sharedscripts, se pasa el patrón completo al script. Consulte las secciones postrotate y SCRIPTS, consulte también sharedscripts y nosharedscripts sobre la gestión de errores.


    script

registro. Estas directivas solo se utilizan en la definición de un archivo de registro. En general, se pasa la ruta absoluta del archivo de registro como primer argumento del script y la ruta al archivo rotado se pasa como segundo argumento al script. Si se utiliza la directiva sharedscripts, se pasa el patrón completo como primer argumento del script mientras se omite el segundo. Consulte las secciones prerotate y SCRIPTS, consulte también sharedscripts y nosharedscripts sobre la gestión de errores.


    script

de registro. logrotate indica el nombre del archivo a eliminar en el primer argumento del script. Consulte las secciones firstaction y SCRIPTS.

Las líneas situadas entre la directiva inicial, por ejemplo prerotate y endscript (Ambas deben aparecer en líneas dedicadas) se ejecutan con /bin/sh. El script hereda algunos rasgos del proceso logrotate como por ejemplo stderr, stdout, el directorio actual, el entorno y el valor de umask. Los script se ejecutan con el usuario/grupo con el que son invocados independientemente de la directiva su. Si se añade la opción --log, el archivo de registro será el descriptor de archivo 3. No se define el directorio de trabajo actual.

Los grupos y usuarios se intentan leer por su representación textual y sino por su representación numérica.

/var/lib/logrotate/status Archivo de estado por defecto.
/etc/logrotate.conf Opciones de configuración.

chmod(2), gunzip(1), gzip(1), mail(1), shred(1), strftime(3), strtoul(3), <https://github.com/logrotate/logrotate>

Erik Troan, Preston Brown, Jan Kaluza.
<https://github.com/logrotate/logrotate>

La traducción al español de esta página del manual fue creada por Antonio Aneiros <aneiros@ctv.es> y Marcos Fouces <marcos@debian.org>

Esta traducción es documentación libre; lea la GNU General Public License Version 3 o posterior con respecto a las condiciones de copyright. No existe NINGUNA RESPONSABILIDAD.

Si encuentra algún error en la traducción de esta página del manual, envíe un correo electrónico a debian-l10n-spanish@lists.debian.org.

3.21.0 Linux