Eu uso o logrotate para girar os logs de acesso, erro e reescrita do Apache. Meu arquivo de configuração fica assim:
/apache/*log {
compress
dateext
rotate 365
size=+300M
olddir /log/old/apache
notifempty
missingok
lastaction
/bin/apache reload
endscript
}
Meu problema é que sempre que ocorre uma rotação, o Apache precisa ser recarregado porque o Apache não escreve mais no arquivo de log recém-rotacionado. Existe uma maneira de evitar que o Apache seja recarregado toda vez que o logrotate faz uma rotação?
fonte
lastaction echo "" | /apache/*log endscript
o filehandle não está "perdido"?logrotate
documento diz: "Observe que há uma fatia de tempo muito pequena entre copiar o arquivo e truncá-lo, para que alguns dados de registro possam ser perdidos".copytruncate
?Eu recomendo que você use http://cronolog.org/
É assim que eu uso:
fonte