¿Cómo puedo controlar lo que está haciendo logrotate?


51

¿Cómo puedo monitorear lo que está haciendo logrotate en Ubuntu? ¿Se puede monitorear la actividad de logrotate?


bueno, podrías ir y ver qué descriptores de archivo ha abierto el proceso ... ¿Quizás intentar explicar qué problema exacto tienes? ¿Estás tratando de depurar tus propios scripts? Rendimiento de los scripts predeterminados / de terceros?
Hubert Kario

Respuestas:


55
cat /var/lib/logrotate/status 

Para verificar si un registro en particular está rotando o no y para verificar la última fecha y hora de su rotación, revise el archivo / var / lib / logrotate / status. Este es un archivo perfectamente formateado que contiene el nombre del archivo de registro y la fecha en la que se giró por última vez.

Tomado de:

https://www.digitalocean.com/community/articles/how-to-manage-log-files-with-logrotate-on-ubuntu-12-10


16
Encontrará este archivo como /var/lib/logrotate.statusen los sistemas Red Hat.
Michael Hampton

1
Aquí hay una guía completa para solucionar problemas de rotación en sistemas Red Hat: access.redhat.com/solutions/32831
Gaia

Considerando Ubuntu, cat /var/lib/logrotate/status solo muestra la actividad logrotate iniciada por el usuario root . Los cronjobs de otros usuarios pueden desencadenar su propia actividad logrotate, por ejemplo, cuando su crontab incluye una entrada como 0 0 * * * /usr/sbin/logrotate $HOME/logrotate/logrotate.conf --state $HOME/logrotate/logrotate-state. Esa actividad de rotación de registros se escribiría en un archivo $HOME/logrotate/logrotate-state, $HOMEsiendo el directorio de inicio de ese usuario.
Abdull

En sistemas RedHat aún más recientes (al menos en RHEL 7.6) el archivo de estado ahora está en /var/lib/logrotate/logrotate.status.
Richlv

13

Puede intentar ejecutar logrotate en modo de depuración o detallado:

-d     Turns  on  debug mode and implies -v.  In debug mode, no changes
          will be made to the logs or to the logrotate state file.

-v, --verbose
          Display messages during rotation.

¿Ayuda esto cuando logrotate se inicia como cron? Quiero decir, ¿existe la posibilidad de registrar el comportamiento de logrotate en un archivo de registro?

2
/ usr / sbin / logrotate -v /etc/logrotate.conf &> /var/log/logrotate.log
kernelpanic

sudo logrotate -v /etc/logrotate.conf &> /var/log/logrotate.log bash: /var/log/logrotate.log: Permiso denegado

1
@dude: si está intentando hacerlo desde la línea de comandos y obtiene ese error, deberá hacerlo así: sudo logrotate -v /etc/logrotate.conf 2>&1 | sudo tee -a /var/log/logrotate.log >/dev/null( asegúrese de tener el -a).
Dennis Williamson

@Dennis cuando intento eso, aunque crea el logrotate.log pero tiene 0 KB y el proceso no se detiene en la terminal y espera con un cursor parpadeante.

9

En Suse, las distribuciones de Linux son así:

cat /var/lib/logrotate.status

AWS AMI Linux tiene la misma estructura de estado de logrotate
Victor Perov

5

Varios registros se rotan en varias frecuencias según el archivo de configuración (/etc/logrotate.conf) y / o el directorio (/etc/logrotate.d). Los nombres pueden variar en diferentes distribuciones. La configuración puede especificar acciones previas y / o posteriores a la rotación. Los nombres de los archivos rotados y la última fecha de rotación están en el archivo de estado (/ var / lib / logrotate / state).

Logrotate no tiene instalaciones de registro. Las acciones de recarga / reinicio que inicia se registrarán de acuerdo con el registro del programa en el que se está actuando.

La forma más fácil de hacerlo sería editar /etc/cron.daily/logrotatepara incluir la -vopción. Los detalles sobre la configuración de logrotate y las opciones se pueden encontrar con el comando man logrotate.


3

Amigo, puedes verificar la configuración de logrotate, generalmente en /etc/logrotate.conf.

Las distribuciones modernas tienen un logrotatearchivo de configuración específico en el /etc/logrotate.ddirectorio.

por ejemplo para nginx

  /var/log/nginx/*.log {
    weekly
    missingok
    rotate 52

Mantendrá el archivo durante 52 semanas (un año). La rotación es semanal.


Nota: user56548 solía ser "Amigo"

ingrese la descripción de la imagen aquí


Probablemente, quisiste decir rotate 365o weekly. La rotación diaria con rotate 52mantendrá 52 días de registros, obviamente.
temoto

@temoto gracias, en realidad fueweekly
Ring Ø
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.