有一个cron工作是在一天中的大部分时间运行,有时工作卡住,我想设置一个时间或检查它让我知道如果已经被卡住超过20分钟,我想得到我如何做到这一点的想法。 最后,如果真的花了20多分钟,我会很乐意给我们发电子邮件。 这是我的crontab项目:
00 07 * * * /u01/home/oracle/sysadm/run_trans_push.sh > /u01/home/oracle/trc/run_trans_push.sh_`date +\%b_\%d`.trc 2>&1
这也创build一个跟踪文件。
您可以尝试以下操作:在作业开始之前创build一个文件,并在完成时将其删除。 作业开始后20分钟检查文件是否存在。 如果是的话发送通知
00 07 * * * touch /tmp/run_trans_push.started; /u01/home/oracle/sysadm/run_trans_push.sh> /u01/home/oracle/trc/run_trans_push.sh_`date + \%b _ \%d`.trc 2>&1; rm -f /tmp/run_trans_push.started 20 07 * * * if [-f /tmp/run_trans_push.started]; 然后回显“run_trans_push仍在运行”; 科幻
就像我知道的那样,cron发送邮件给cron作业的用户,如果有输出的话。 所以我觉得做一个echo
就足够了。 但是,当然你可以发邮件,例如:
mailx -s 'run_trans_push still running' oracle </dev/null