Caso alguém esteja se perguntando, comprima os disparos APÓS POSTAR, apesar do que a página do manual diz.
Eu tenho um arquivo de configuração que se parece com:
/var/log/nginx/*.log {
daily
missingok
rotate 90
dateext
compress
notifempty
create 644 root adm
sharedscripts
postrotate
[ ! -f /var/run/nginx.pid ] || kill -USR1 'cat /var/run/nginx.pid'
/usr/local/bin/synclogs.sh
endscript }
O synclogs.sh deve ser executado quando todos os arquivos de log forem girados e compactados. O script começa com sucesso, mas quando ele começa a rodar, o programa não encontra nenhum dos arquivos .gz que o logrotate deveria fazer. Eu executei o script manualmente alguns minutos depois, ele começa bem.
De acordo com os documentos que encontrei, o posttrotate não deve começar até que a compressão termine. Não é esse o caso? Isso é um bug no logrotate que vem no Debian Squeeze ou eu simplesmente senti falta de algo muito simples?
Você já tentou isso:
/var/log/nginx/*.log {
daily
missingok
rotate 90
dateext
compress
**delaycompress**
notifempty
create 644 root adm
sharedscripts
postrotate
[ ! -f /var/run/nginx.pid ] || kill -USR1 'cat /var/run/nginx.pid'
/usr/local/bin/synclogs.sh
endscript }
Dê uma olhada na opção delaycompress, é claro, sem "*" HTH