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

cron: отправить письмо на другой адрес в случае сбоя

У меня такой cronjob:

MAILTO=mymail@mydomain.com
30 00 * * * root /run/this/script.sh

Есть ли способ указать cron отправлять почту на разные почтовые адреса на основе кода выхода? Я имею в виду, может ли cron отправить электронное письмо на allok@mydomain.com в случае, если script.sh вернет 0, или отправить на error@mydomain.com, если что-то пошло не так? Или я должен делать это в скрипте-обертке?

Вам нужно будет сделать это в сценарии-оболочке.

Нет, cron отправляет весь вывод указанному пользователю.

Обычно все задания cron должны иметь STDOUT, перенаправленный на / dev / null, потому что вы не хотите спамить пользователя всеми заданиями cron, которые выполняются на сервере.

Если вы сделаете это (перенаправление), вы получите письмо только в случае сбоя.

Да, ты можешь это сделать. Просто добавь > / dev / null после вашего CRON скрипта.

MAILTO="mymail@mydomain.com" 30 00 * * * root /run/this/script.sh > /dev/null

Проверять, выписываться https://cronitor.io. Он может отправлять вам предупреждения, если ваша работа не удалась. Вы пишете свою команду cron следующим образом:

0 * * * * /path/to/my_cron_job.sh || curl https://cronitor.link/d3x0/fail

Вы также можете проверить связь с конечной точкой / complete, чтобы указать на успех, и вы можете создать правило вроде «Оповестить меня, если у меня не было успешной / полной проверки за 24 часа».