Назад | Перейти на главную страницу

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

Настроено задание 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

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

Вы можете попробовать следующее: создать файл до начала задания и удалить его по завершении. Через 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