A página do manual logrotate
diz 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.
Estou confuso com isso. Se um programa não puder ser solicitado a fechar seu arquivo de log, ele continuará gravando para sempre , não por um tempo . Se a compactação for adiada para o próximo ciclo de rotação, o programa continuará gravando nesse arquivo mesmo após o próximo ciclo de rotação. Como o adiamento está resolvendo o problema?
Meu entendimento é que isso copytruncate
deve ser usado quando um programa não puder ser solicitado para fechar o arquivo de log. Estou ciente de que alguns dados gravados no arquivo de log são perdidos quando a cópia está em andamento.
Eu estava olhando para o arquivo logrotate para couchdb, e tinha tanto copytruncate
e delaycompress
opções.
/usr/local/couchdb-1.0.1/var/log/couchdb/*.log {
weekly
rotate 10
copytruncate
delaycompress
compress
notifempty
missingok
}
Parece que não faz sentido usar delaycompress
quando copytruncate
já está lá. o que estou perdendo?
copytruncate
, não há necessidade de dizer ao programa para fechar seu arquivo de log. Então, não faz sentido especificardelaycompress
juntocopytruncate
?copytruncate
menos que seja absolutamente necessário, pois perde as entradas do log. Você pode usar as duas opções se desejar o outro recurso quedelaycompress
fornece - a capacidade de ler o arquivo de log anterior sem precisar descompactá-lo primeiro.copytruncate
se eu não puder pedir ao meu programa para recarregar?Não tenho certeza se entendi completamente sua pergunta, mas se você está perguntando o que eu acho ... eu uso isso:
Essa é uma boa (ou pelo menos a) maneira de matar o log e passar para a próxima. Para "programas" ruins, como a plataforma ASA da Cisco, que registra toneladas de dados por segundo, funciona.
fonte
Nós usamos:
Isso cria uma cópia fixa do apache,
access_log
access_log.1
para que possamos executar nosso pacote Stats como um script no final do dia.No dia seguinte, logrotate compacta o arquivo, criando
access_log.2.zip
fonte