Como girar um arquivo de log do crontab?

4

Eu tenho esta diretiva no meu crontab:

* * * * * /var/www/github/mysite/bin/email email worker await --pid=/var/run/mysite-worker-email.pid >> /tmp/mysite-worker-email.log

Como você pode ver todos os meus logs estão escritos em /tmp/mysite-worker-email.log , existe uma maneira de eu rodar esse arquivo?

    
por DomingoSL 06.07.2015 / 12:53

1 resposta

10

Supondo que você tenha permissões de root na máquina. Se você está em hospedagem compartilhada, SF é o site errado para você de qualquer maneira.

Verifique se /etc/logrotate.conf e /etc/logrotate.d existem. Se o fizerem, adicione um arquivo com um nome de acessório, por exemplo site_email into /etc/logrotate.d com um conteúdo como o seguinte:

/tmp/mysite-worker-email.log {
   compress
   daily 
   missingok
   rotate 7
}

Isso girará os arquivos de log diariamente e manterá as cópias compactadas dos últimos sete dias. logrotate tem muitas outras opções, veja man logrotate.conf para todas elas.

Por favor, note: Manter arquivos de log em /tmp é uma má ideia. Coloque-os em /var/log/ onde eles pertencem, especialmente se você quiser manter mais cópias do arquivo de log e não desejar que eles sejam excluídos quando /tmp for limpo.

    
por 06.07.2015 / 15:17