Проверьте, сколько времени протекло для задания Крона и посылает электронное письмо

Существует задание крона, которое установлено, который работает в течение большей части дня, иногда задание застревает, и я хотел бы назначить время или проверить его который, позвольте нам меня, знают, застревало ли оно больше 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

Это создает файл трассировки также.

0
задан 4 December 2014 в 19:42
1 ответ

Вы можете попробовать следующее: создать файл до начала задания и удалить его, когда оно будет завершено. Через 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 ]; then echo "run_trans_push still running"; fi

Так быстро, как я знаю, cron отправит сообщение пользователю задания cron, если оно есть. Поэтому я думаю, что достаточно сделать echo. Но, конечно, вы можете отправить письмо, например:

mailx -s 'run_trans_push still running' oracle </dev/null
1
ответ дан 4 December 2019 в 17:06

Теги

Похожие вопросы