Se você não é bom em scripts de shell, eu não tentaria escrever sua própria rotação de log. Não parece que você tenha alguma necessidade aqui que não seria tratada melhor usando logrotate do que rolando o seu próprio. Você pode fazer um arquivo de configuração simples
# /etc/logrotate.d/tcpdump
"/var/log/tcpdump.log" {
daily
rotate 30
compress
prerotate
killall your_dump_script
endscript
postrotate
your_dump_script &
endscript
}
Isto irá:
- gire seu arquivo
daily
- mantenha
30
de cópias desde que você não queira ocupar seu disco -
compress
usando o gzip para economizar espaço em disco. Você pode usarzless
ouzgrep
para visualizá-los. - mate
your_dump_script
antes de rodar e reinicie-o depois. Sinta-se à vontade para renomear isso para algo mais a seu gosto.
Se você colocá-lo em /etc/logrotate.d
, ele deve ser escolhido por suas tarefas agendadas internas, mas se você quiser executá-lo manualmente para verificar se ele funciona:
logrotate /etc/logrotate.d/tcpdump
Ou coloque a configuração em um local diferente e execute-a a partir do seu script. De qualquer forma, você está escrevendo menos código e as coisas tendem a funcionar de maneira mais confiável.