2011-06-30 20 views
7

Tengo una aplicación personalizada (myApp) que está escribiendo registros en el archivo '/ var/log/myApp'. Puedo ver los registros que se escriben y funciona bien. Ahora estoy tratando de logrotate configuración de este archivo y para esto he creado un archivo de configuración '/etc/logrotate.d/myApp', cuyos contenidos son -Logrotate no gira automáticamente cuando se basa en el tamaño de registro

/var/log/myApp { 
    missingok 
    size +10k 
    start 0 
    nocompress 
    create 0600 root root 
    rotate 10 
    postrotate 
    /etc/init.d/rsyslog restart > /dev/null 2>&1 || true 
    endscript 
} 

Ahora bien, si hago un logrotate -dv /etc/logrotate.d/myApp I no ve ningún error como tal y cuando se ejecuta logrotate -f /etc/logrotate.d/myApp, es decir, un registro rotativo enérgico del registro se rota. Pero cuando el tamaño del archivo de registro excede 10k, el registro no se gira automáticamente. Cualquier ayuda sería apreciada.

Respuesta

3

logrotate rota los registros especificados en /etc/logrotate.d/ de acuerdo con el intervalo de tiempo configurado en /etc/logrotate.conf. En algunas distribuciones, el valor predeterminado es una semana. Puede anular ese intervalo de tiempo en su configuración específica utilizando, por ejemplo, 'diario' en su archivo de configuración.

Los archivos de registro no se rotarán hasta que logrotate haya tenido conocimiento de los archivos durante al menos el tiempo especificado. Supongo que esperó tanto y/o modificó el archivo conf.

+0

> Los archivos de registro no se rotarán hasta que logrotate haya tenido conocimiento de los archivos durante al menos el tiempo especificado. Gwha? Eso es nuevo para mí. No vi nada en la página del manual de logrotate sobre eso. ¿Cómo se podría depurar un archivo logrotate conf sin tener que esperar 24 horas para ver si funcionó? – Logan

+0

@Logan - Utiliza la opción '-f' (forzar). – Hogan

+0

Véase también http://unix.stackexchange.com/questions/15546/logrotate-log-does-not-need-rotating-why/15547#15547 (/ var/lib/logrotate/status and -f flag) – pevik

1

logrotate funciona solo una vez al día, por lo que no está controlando el tamaño de su archivo todo el tiempo.

si quieres una forma efectiva de mantener el tamaño menor, se debe utilizar una tarea programada como

por ejemplo, forzar la rotación cada hora en su crontab

0 * * * * logrotate <my conf here> 

y sus registros se , si es necesario, rotar cada hora. Tuve tal problema en mi servidor Aws de nivel libre, ya que el tamaño excedió rápidamente y no tenía suficiente espacio en el disco para esperar 24 horas para una rotación

Cuestiones relacionadas