Logrotate no rota el archivo después de que el tamaño del archivo excede el límite.

9

Desde logrotate manpage.

No modificará un registro más de una vez en un día a menos que el criterio para ese registro se base en el tamaño del registro

Según la página de manual, logrotate debería rotar el archivo si la configuración se basa en el tamaño de los registros. Pero, mi archivo no se obtiene incluso si el tamaño del archivo es mayor que 100k.

¿Alguien puede señalar cuál es el problema?

Mi configuracion

/home/jetech/work/lampstack-5.3.9-0/apache2/logs/access_log  {
    copytruncate
    compress
#    dateext
    rotate 365
    size 100k
    olddir /home/jetech/work/lampstack-5.3.9-0/apache2/old_logs
    notifempty
    nomail
    missingok
}
robert
fuente

Respuestas:

17

¿Cómo sabes que el archivo no se rota?

En un Debian 6 Linode que tengo, en la configuración predeterminada logrotatesolo estaba programado cronpara ejecutarse una vez al día, y en un momento muy extraño. Si solo se ejecuta una vez al día, naturalmente solo tendrá una oportunidad por día para ver la configuración, hacer las comparaciones y realizar las rotaciones requeridas.

Entonces, ¿estás seguro de que realmente estás ejecutando tu logrotate? Es posible que desee comprobar su /etc/cron*y /etc/cron*/*para ver cuándo y con qué frecuencia está programado ejecutar Logrotate.

Por ejemplo, si el logrotatescript está presente /etc/cron.daily, es posible que desee moverlo /etc/cron.hourlyo, si cada hora no es lo suficientemente bueno, crear un archivo /etc/cron.d/con el siguiente contenido, para ejecutarlo logrotatecada 10 minutos:

*/10  *  *  *  *   root    /usr/sbin/logrotate /etc/logrotate.conf
cnst
fuente
0

Así que en logrotaterealidad funciona así,

  • En la configuración especificamos una frecuencia de ejecución ( diaria , por hora , por mes )
  • Hay una entrada /etc/cron.xxxpara que logrotate se ejecute.
  • logrotate se ejecuta a través de crontab

si mencionó todos los días, todos los días a la cantidad de tiempo especificada (/ etc / crontab), el proceso crontab ejecutará el proceso logrotate para la rotación. Por lo tanto, el límite de tamaño de archivo no funcionará ya que el proceso nunca se ejecutará.

swayamraina
fuente