¿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?

w5m
fuente
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

Camilo Sanchez
fuente
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.
panico kernel
fuente
¿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
gugol
fuente
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.

BillThor
fuente
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í

Ø de anillo
fuente
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 Ø