¿Cuándo usar la opción delaycompress en logrotate?

Pregunta:

La página de manual de logrotate dice que:

It can be used when some program cannot be told to close its logfile
and  thus  might  continue writing to the previous log file for some
time.

Estoy confundido por esto. Si a un programa no se le puede decir que cierre su archivo de registro, continuará escribiendo para siempre , no por algún tiempo . Si la compresión se pospone al siguiente ciclo de rotación, el programa continúa escribiendo en ese archivo incluso después del siguiente ciclo de rotación. ¿Cómo posponer la solución del problema?

Tengo entendido que copytruncate debe usarse cuando no se le puede decir a un programa que cierre el archivo de registro. Soy consciente de que algunos datos escritos en el archivo de registro se pierden cuando la copia está en progreso.

Estaba mirando el archivo logrotate para couchdb, y tenía las opciones copytruncate y delaycompress .

/usr/local/couchdb-1.0.1/var/log/couchdb/*.log {
   weekly
   rotate 10
   copytruncate
   delaycompress
   compress
   notifempty
   missingok
}

Parece que no tiene sentido usar delaycompress cuando copytruncate ya está allí. ¿Qué me estoy perdiendo?

Respuesta:

Su comprensión de copytruncate es correcta, pero la redacción de la página de delaycompress de delaycompress es un poco engañosa. Más correctamente, debería decir "cuando a algún programa no se le puede decir que cierre inmediatamente su archivo de registro", por ejemplo, si está utilizando scripts compartidos y el script envía una señal al proceso utilizando el registro cuando todos los archivos de registro se han rotado .

Leave a Comment

Your email address will not be published.

Scroll to Top

istanbul avukat

-

web tasarım