Eu tenho um cron job executando um script que leva cerca de 6 horas para ser concluído. O problema é que o cron não está me enviando a saída desse trabalho, e eu gostaria disso.
Eu tenho em / etc / crontab e é algo como:
0 * * * * myuser /usr/local/bin/my-script
Sim, essa é a corrida a cada hora, mas há um arquivo de bloqueio no script, portanto, se a execução anterior não foi concluída, a nova execução do script será encerrada imediatamente sem fazer nada.
O sistema é Debian 5.0 'lenny' e o MTA é o Postfix.
Se o trabalho for interrompido (com "kill $ PID") no início da execução, receberei um e-mail com a saída do trabalho. Além disso, se eu modificar o script para fazer 10 vezes menos coisas, também recebo um e-mail. Só se o script estiver rodando por algumas horas eu não recebo nenhum e-mail.
Linhas relevantes de ps afx
pouco tempo após o início da tarefa cron:
8222 ? Ss 0:04 /usr/sbin/cron
13265 ? S 0:00 \_ /USR/SBIN/CRON
13297 ? Ss 0:00 \_ /bin/bash /usr/local/bin/my-script
13395 ? S 0:16 | \_ /usr/bin/python /usr/local/bin/some-script.py
17065 ? S 0:00 \_ /usr/sbin/sendmail -i -FCronDaemon -oem myuser
17066 ? S 0:00 \_ /usr/sbin/postdrop -r
Portanto, parece que o MTA já é chamado quando a tarefa cron inicia, não quando termina. Isso pode estar relacionado ao problema? Pode ser possível que o Postfix não goste de postdrop
rodando tanto tempo, e isso acaba ou algo assim? Como posso resolver o problema? Eu preciso ter a saída enviada por e-mail para mim.