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 no se le puede decir a un programa 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 se pospone resolver el problema?
Entiendo que copytruncate
debería 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 buscando en el archivo logrotate para couchdb, y tenía tanto copytruncate
y delaycompress
opciones.
/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?
copytruncate
, no hay necesidad de decirle al programa que cierre su archivo de registro. Entonces, ¿no tiene sentido especificardelaycompress
junto concopytruncate
?