Aqui está o trabalho do crontab
/usr/local/bin/python2.7 /home/scripts/script.py >> /home/scripts/logs/log.log 2>&1
Como faço para gerar um novo log sempre que o trabalho é executado?
Não há problema em adicionar um contador crescente ao arquivo de log cada vez que ele é gerado. Não sei como fazer isso.
Eu realmente preciso executar outro cron job para fazer isso?
Responder1
Você pode usar o date
comando para gerar um nome de arquivo exclusivo (ish):
/usr/local/bin/python2.7 /home/scripts/script.py > /home/scripts/logs/"`date +\%d\%m\%y_\%H\%M\%S`".log 2>&1
EDITAR:Certifique-se de escapar dos sinais de porcentagem( \%
). Eles TEM umsignificado especialno cron e o crontab retornará um erro.
Dessa forma, um novo arquivo de log (chamado <date_time>.log
) será criado toda vez que seu job for executado.
$ date; touch "`date +%d%m%y_%H%M%S`.log"
Tue Sep 25 04:39:25 CEST 2012
$ ls *log
250912_043925.log
Supondo que seu script não seja executado com mais frequência do que uma vez por segundo (o que não acontecerá se você estiver executando um crontab simples), você deve ficar bem.
Se, conforme sugerido nos comentários, seu script for executado por usuários diferentes, você poderá adicionar o nome de usuário ao nome do arquivo de log:
/usr/local/bin/python2.7 /home/scripts/script.py > /home/scripts/logs/$(echo -n `whoami`_`date +\%d\%m\%y_\%H\%M\%S`).log 2>&1