¿Cuánto tiempo espera logrotate entre la postrotación y la compresión?

¿Cuánto tiempo espera logrotate entre la postrotación y la compresión?

Estoy escribiendo un software y quiero recargar los archivos de registro cuando el proceso obtenga un SIGHUP de algo como logrotate. La pregunta es, ¿cuánto tiempo puede utilizar la aplicación antes de que logrotate comience a comprimir el archivo de registro rotado?

La página de manual y todas las referencias que encontré simplemente indican que la aplicación debe recargar los registros "inmediatamente", pero no dice si esto debe hacerse en 1 ms o 1 segundo, por ejemplo.

Respuesta1

Para estar seguro: ninguno en absoluto.

Logrotate supone que una vez que el comando postrotate haya finalizado, ya no se escribirá más en el archivo de registro. Hay dos formas de solucionar "el cierre de archivos de registro puede tardar un poco":

  • La opción de logrotate delaycompresspospone el paso de compresión hasta quepróximoInvocación de logrotate. De esa manera, puede tomar el tiempo que sea necesario para la siguiente ejecución de logrotate (aunque hacerlo sería una muy mala idea).
  • Puede escribir una herramienta de línea de comandos que le indique al demonio que cierre y vuelva a abrir el archivo de registro, y asegúrese de que este comando lo haga.nosalga hasta que el demonio haya confirmado que todos los archivos de registro se han cerrado (no es necesario esperar hasta que se hayan reabierto también, aunque eso no hace daño). Luego, las personas pueden usar esta herramienta de línea de comandos desde las estrofas de logrotate postrotate.

información relacionada