Tengo dos cajas de Debian diferentes (i386 v AMD) y tengo el mismo problema. logrotate no rotará mis registros automáticamente. Funciona bien cuando lo fuerzo manualmente como
/usr/sbin/logrotate -f /etc/logrotate.conf
Pero no está bien para mí.
La configuración no se modificó (al menos no la modifiqué), la caja AMD es una instalación nueva pero no hará su trabajo.
Si ha notado un problema similar, por favor ayúdeme.
Actualización (alguna salida del servidor):
logrotate -d
http://pastebin.com/e6AshtGq
ls -l /var/log
http://pastebin.com/Y2A4Li59
cat /etc/logrotate.conf
http://pastebin.com/1h7Uwctr
ls -l /etc/logrotate.d
http://pastebin.com/NvUAeszM
debian
logrotate
debian-squeeze
fabrik
fuente
fuente
...rsyslogd was HUPed...
no estar seguro de que esto signifique algo.cron.daily
rotación, pero no sucederá.Respuestas:
Verifique que cronrotate esté ejecutando su logrotate.
Editar:
De la discusión de comentarios, parece que cron no funciona correctamente. Tenía un cronjob en mi crontab sin usuario pero esto solo salió a la luz cuando reinicié el demonio cron
Mis sistemas ubuntu y centos tienen un
/etc/cron.daily/logrotate
archivo cuyo contenido esMi / etc / crontab tiene la siguiente línea para ejecutar los trabajos diarios
fuente
ps -ef | grep cron| grep -v grep
? Agregue un eco al comienzo de /etc/cron.daily/logrotateecho "logrotate runing" >>/tmp/logrotate.out
y vea si se crea.cron
está en funcionamiento pero no ejecutará el trabajo diario de logrotate. Si ejecuto/etc/cron.daily/logrotate
manualmente, rota mis registros,/tmp/logrotate.out
también escritos./etc/cron.daily/logrotate
así que agregué un-f
parámetro para forzar la rotación, pero hoy por la mañana mis registros no giraron.Tuve un problema similar pero
crontab
estaba funcionando y para algunos de los directorios de registrologrotate
funcionó, pero para algunos no. Cuando intenté ejecutar el logrotate manualmente, recibí algunos mensajes de error.Todos los
*.1.gz
archivos tenían un tamaño de 0. Eliminé manualmente todos los archivos mencionados en el mensaje de error, volví a ejecutarlossudo /usr/sbin/logrotate -f /etc/logrotate.conf
y funcionó.Pensé que también debería compartir esta solución alternativa aquí, ya que este fue el primer resultado de búsqueda que surgió cuando estaba buscando el problema, pero la solución sugerida no funcionó para mí. Quizás esto ayude también a otros que están en la misma situación que yo.
fuente
Sé que sé. Hilo de 5 años.
Solo pensé que si todavía aparece bastante alto en las búsquedas, contribuiré y daré mi solución al problema que encontré. Mis trabajos de rotación de registros no se manejaron automáticamente en uno de mis servidores. Forzar la rotación funcionó bien. Se me ocurrió una solución después de ejecutar el comando de rotación diaria a mano:
Luego vi el error que impedía que se dispararan los trabajos de logrorate:
Sí, tan simple como eso. Tenía dos archivos que definen los mismos registros para rotar (iptraf e iptraf-ng). Simplemente eliminar una de las definiciones de logrotate en conflicto para iptraf hizo el truco.
Otro problema podría ser un archivo / etc / crontab fallido. Lo que significa doble o triple verificar la sintaxis en ese archivo, ya que no proporciona ningún resultado que podría encontrar si la sintaxis es incorrecta. Sale silenciosamente después de una validación de sintaxis fallida.
Espero que esto ahorre algo de tiempo.
fuente
OK, tuve un problema similar.
"los registros no se están girando?" pero ejecutando logrotate manualmente (o ejecutando
/etc/cron.daily
y los gira muy bien.Entonces parece que cron simplemente "no se está ejecutando" diariamente. Impar. Así que busqué en el archivo de registro donde cron emite sus datos y vi "El token de autenticación ya no es válido; se requiere uno nuevo" para solucionar ese problema en particular, vea aquí
fuente
He visto que esto sucede a menudo con el tiempo a medida que cambian los servicios, y las opciones utilizadas en logrotate se han eliminado, lo que hace que logrotate falle cada día.
Para darle una idea, la última solución implicó que la opción notifyempty en el archivo logrotate de apache ya no sea válida, lo que a su vez hizo que logrotate se detuviera por completo.
Si bien esto se ha cubierto hasta cierto punto, me gustaría compartir el proceso que sigo al rastrear estos problemas:
#/usr/sbin/logrotate -f /etc/logrotate.conf
para buscar cualquier error (por ejemplo, postfix: 3 'missingok').El archivo y el número de línea al que hace referencia es el archivo en la carpeta logrotate.d.
# vi /etc/logrotate.d/postfix
elimine la opción que causa el problema y guarde el archivo.Hay momentos en que el primer paso simplemente genera algo, pero usted sabe que hay un problema. Dado que todo esto comenzó porque los archivos de registro de un servicio no se estaban rotando, puede ver el proceso de rotación de registros buscando ese servicio específico para ver qué lo detiene. Para hacer esto, agregue la etiqueta detallada a su comando logrotate y observe para ver qué sucede en esa carpeta (si corresponde).
fuente
¡Verifique si hay parámetros de configuración de rotación rotados en conflicto!
Estaba luchando con este problema y finalmente leí algo de documentación sobre logrotate muy de cerca, encontré documentación útil aquí .
Había especificado un parámetro de tamaño y un parámetro de intervalo de rotación , cuando en realidad no quería ninguno. Quería que mis rotaciones ocurrieran exactamente cuando estaban programadas en cron.
Por lo tanto, elimine el parámetro Intervalo de rotación y el parámetro Tamaño . Entonces obtendrá una rotación cada vez que se llame logrotate sin tener que forzarlo.
EDITAR : OK, incluso esto no funciona del todo! Si el archivo de registro está por debajo de cierto umbral, los registros no rotarán. Entonces, cuando ejecuté un trabajo cron que giraba cada 2 minutos, no giraba los registros.
Puede ver información de depuración detallada si ejecuta
logrotate -d
. Esto proporciona información de depuración muy útil.fuente