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