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
?copytruncate
menos que sea absolutamente necesario , porque pierde entradas de registro. Puede usar ambas opciones si desea la otra característica quedelaycompress
proporciona: la capacidad de leer el archivo de registro anterior sin necesidad de descomprimirlo primero.copytruncate
si no puedo decirle a mi programa que vuelva a cargar?No estoy seguro si entiendo completamente tu pregunta, pero si preguntas lo que pienso ... uso esto:
Esa es una buena (o al menos una) forma de matar el registro y pasar al siguiente. Para los "programas" que apestan, como la plataforma ASA de Cisco que registra toneladas de datos por segundo, funciona.
fuente
Usamos:
Esto crea una copia fija del apache
access_log
access_log.1
para que luego podamos ejecutar nuestro paquete de estadísticas como un script al final del día.Al día siguiente, logrotate comprime el archivo creando
access_log.2.zip
fuente