GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo puedo configurar logrotate para rotar los registros cada hora?

Dependiendo de su sistema operativo. Algunas (¿todas?) distribuciones de Linux tienen un directorio /etc/cron.hourly donde puede poner trabajos cron para que se ejecuten cada hora.

Otros tienen un directorio /etc/cron.d/ . Allí puede poner trabajos cron que se ejecutarán como cualquier usuario especial con la configuración cron habitual de una entrada crontab (y debe especificar el nombre de usuario).

Si usa cualquiera de estos en lugar del script de rotación de registros estándar en /etc/cron.daily/ deberías copiar ese script allí y cp /dev/null a la posición original. De lo contrario, se reactivará mediante una actualización de parche de logrotate.

Para una rotación horaria adecuada, también tenga cuidado de que el dateext directiva es no establecer. Si es así, por defecto, el primer archivo rotado obtendrá la extensión de la fecha actual como AAAAMMDD. Luego, la segunda vez que logrotate se activaría en el mismo día, simplemente omitiría la rotación incluso si size se ha excedido el umbral.

El motivo es que el nuevo nombre del archivo que se va a rotar ya existe y logrotate no agrega el contenido al archivo antiguo existente. Por ejemplo, en RHEL y CentOS, el dateext la directiva se da por defecto en /etc/logrotate.conf . Después de eliminar o comentar esa línea, los archivos rotados simplemente obtendrán un número continuo como extensión hasta llegar al rotate valor. De esta forma, es posible realizar múltiples rotaciones al día.


Solo para agregar a la respuesta de Nils, si cambia la ubicación del logrotate script en una caja de Debian o Ubuntu, probablemente sea más seguro usar dpkg-divert en lugar de simplemente copiar el archivo y copiar /dev/null a la posición original, por ejemplo:

dpkg-divert --add --rename --divert /etc/cron.hourly/logrotate /etc/cron.daily/logrotate

Otra opción sería agregar el comando logrotate en la lista crontab. Luego se ejecutará cada hora.

crontab -e

agregue la siguiente línea en la lista crontab

0 * * * * /usr/sbin/logrotate /etc/logrotate.d/my-hourly-file

Linux
  1. ¿Error en el archivo Sudoers? Así es como puedes arreglarlo.

  2. Centos:¿cómo ver todos los registros de Cron en Centos7?

  3. ¿Cómo se actualiza /etc/motd?

  4. CentOS / RHEL:cómo recuperarse de un archivo /etc/passwd eliminado

  5. CentOS / RHEL:Cómo rotar el archivo /var/log/wtmp y /var/log/btmp usando logrotate

Cómo configurar un trabajo cron en Linux

¿Cómo maneja Linux múltiples separadores de rutas consecutivas (/home////username///file)?

¿Cómo configurar un trabajo cron para ejecutar un ejecutable cada hora?

¿Cómo puedo configurar el autocompletado para los comandos de Git?

Cómo configurar JAVA_HOME en Linux para todos los usuarios

¿Cómo puedo ejecutar SSH en un puerto que no sea el 22?