长期运行的cron作业不邮寄它的输出

我有一个cron作业,运行一个需要6个小时才能完成的脚本。 问题是,cron不是邮件给我的工作的输出,我希望它。

我把它放在/ etc / crontab中,它是这样的:

0 * * * * myuser /usr/local/bin/my-script 

是的,这个运行是每小时运行一次,但脚本中有一个locking文件,所以如果上一次运行没有完成,脚本的新运行将立即退出而不做任何事情。

系统是Debian 5.0“lenny”,MTA是Postfix。

如果这个工作在运行的早期就被杀死了(用“kill $ PID”),那么我会收到一封包含这个工作输出的电子邮件。 另外,如果我修改脚本做10倍的东西,那么我也会收到一封电子邮件。 只有脚本运行了几个小时,我才不会收到电子邮件。

cron作业启动后短时间的ps afx的相关行:

  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 

所以看起来MTA在cron作业开始时已经被调用,而不是在完成时调用。 这可能与问题有关吗? Postfix不太可能像postdrop运行那么长时间,它超时或什么东西? 我怎样才能解决这个问题 – 我需要把输出电子邮件给我。

作为一种解决方法:将输出redirect到一个文件并从cron脚本内部邮寄出去?

作为一个debugging工具:从cron运行一系列脚本,只打印一个date,打印他们的名字,打算长期睡眠,睡眠n分钟,打印一个date,然后退出。 我会同时运行它们,在7个小时内得到答复。 如果你testing长度从1小时到7小时的睡眠时间,比方说,增加10分钟,你会知道这是一个普遍的超时问题,还是与你的脚本有关。