Как получить уведомление, когда скрипт не запустился

У меня есть сценарий bash, работающий на машине (называемой lazyguy), которая обычно выключена. Каждую ночь lazyguy просыпается в известное время, запрограммированное в BIOS, выполняет кучу операций и вставляет данные в свою базу данных Postgres. Затем он переходит в спящий режим (база данных и все такое).

Как можно получить уведомление, когда сценарий НЕ запускался? В идеале я хотел бы получать уведомление по электронной почте, если в базу данных ничего не было вставлено или если сценарий завершился с ненулевым возвращаемым значением. Мне определенно нужно проверить оба условия на случай, если lazyguy проигнорировал свой будильник и снова заснул…

У меня есть другая машина (таскмастер), которая всегда работает, но имеет ограниченные ресурсы. Некоторые мысли:

  • Пусть lazyguy отправит надсмотрщику какое-то сообщение, чтобы указать, что он закончил свои дела (возможно, с подсчетом вставленных строк). Затем, Надсмотрщик будет проверять свой отчет каждый день в определенное время. Если его там нет, напишите мне, и я пришлю головорезов, чтобы они избили ленивого.

  • Пусть таскмастера разбудит ленивого парня напрямую с помощью пакета WakeOnLan, подождите две минуты, запустите сценарий через ssh и проверьте количество строк в база данных на день. Если что-то пойдет не так, напишите мне.

Какой подход лучше? Есть ли более простой способ сделать это? Какие технологии вы бы использовали? Я думаю, может быть, какое-то сочетание crontab, mailx, logger и, возможно, rsyslog.

1
задан User1 12 October 2010 в 01:39
поделиться