Как сделать в CentOS чтобы если команда не выполнилась по крону, то отправилось на email сообщение с ошибкой?

Cent OS, Scientific Linux

Модератор: Модераторы разделов

abc123
Сообщения: 32

Как сделать в CentOS чтобы если команда не выполнилась по крону, то отправилось на email сообщение с ошибкой?

Сообщение abc123 »

Как сделать в CentOS чтобы если команда не выполнилась по крону, то отправилось на email сообщение с ошибкой?
Спасибо сказали:
Аватара пользователя
Vascom
Сообщения: 1699
ОС: Fedora 32

Re: Как сделать в CentOS чтобы если команда не выполнилась по крону, то отправилось на email сообщение с ошибкой?

Сообщение Vascom »

Что значит "не выполнилась"?
Спасибо сказали:
Аватара пользователя
Skyb
Сообщения: 967
ОС: RFremix 18

Re: Как сделать в CentOS чтобы если команда не выполнилась по крону, то отправилось на email сообщение с ошибкой?

Сообщение Skyb »

Отслеживать результат работы программы (команды в данном случае) и в случае отсутствия результата аларм
C:\windows> ifconfig
"ifconfig" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.
Спасибо сказали:
allez
Сообщения: 2223
Статус: Не очень злой админ :-)
ОС: SuSE, CentOS, FreeBSD, Windows

Re: Как сделать в CentOS чтобы если команда не выполнилась по крону, то отправилось на email сообщение с ошибкой?

Сообщение allez »

Если команда выдает действительные коды возврата (они же exit codes), то можно попробовать примерно такую конструкцию:

Код: Выделить всё

command || echo "Command failed" | mail -s "failure report" user@example.org
Спасибо сказали:
Аватара пользователя
Gineaser
Сообщения: 157
Статус: Evrashka
ОС: Arch Linux

Re: Как сделать в CentOS чтобы если команда не выполнилась по крону, то отправилось на email сообщение с ошибкой?

Сообщение Gineaser »

обычное соединение || не подойдет? В случае если не выполнится первая команда (вернет 1, т.к. true = 0), выполняется вторая
Обезьянка видит - Обезьянка делает...
Спасибо сказали:
Аватара пользователя
Vascom
Сообщения: 1699
ОС: Fedora 32

Re: Как сделать в CentOS чтобы если команда не выполнилась по крону, то отправилось на email сообщение с ошибкой?

Сообщение Vascom »

Сколько телепатов развелось.
Может подождём ответа топикстартера, что именно он подразумевает под "не выполнилась" и что за команда?
Спасибо сказали:
Аватара пользователя
Skyb
Сообщения: 967
ОС: RFremix 18

Re: Как сделать в CentOS чтобы если команда не выполнилась по крону, то отправилось на email сообщение с ошибкой?

Сообщение Skyb »

Vascom писал(а):
11.08.2011 11:42
Сколько телепатов развелось.

Ктобы говорил :-DDDDD
C:\windows> ifconfig
"ifconfig" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.
Спасибо сказали:
abc123
Сообщения: 32

Re: Как сделать в CentOS чтобы если команда не выполнилась по крону, то отправилось на email сообщение с ошибкой?

Сообщение abc123 »

По crontab выполняется скрипт каждую минуту, со следующей командой:
/usr/bin/php -f /home/user/public_html/script.php
Как мне в случае невыполнения этой команды в скрипте отправит сообщение на email?
Спасибо сказали:
Аватара пользователя
nickm
Сообщения: 203
ОС: RFRemix

Re: Как сделать в CentOS чтобы если команда не выполнилась по крону, то отправилось на email сообщение с ошибкой?

Сообщение nickm »

cron отправляет вывод команды на email указанный через переменную MAILTO
Ну и логика -
скрипт выполнился норм - ничего не выводит;
ошибка, ругань скрипта уходит на указанный email.
Спасибо сказали:
abc123
Сообщения: 32

Re: Как сделать в CentOS чтобы если команда не выполнилась по крону, то отправилось на email сообщение с ошибкой?

Сообщение abc123 »

nickm писал(а):
11.08.2011 13:15
cron отправляет вывод команды на email указанный через переменную MAILTO
Ну и логика -
скрипт выполнился норм - ничего не выводит;
ошибка, ругань скрипта уходит на указанный email.
такая логика потому что задание выполняется каждую минуту. зачем на почту сообщения каждую минуту
Спасибо сказали:
allez
Сообщения: 2223
Статус: Не очень злой админ :-)
ОС: SuSE, CentOS, FreeBSD, Windows

Re: Как сделать в CentOS чтобы если команда не выполнилась по крону, то отправилось на email сообщение с ошибкой?

Сообщение allez »

abc123, вам стоило бы чуток повнимательнее прочесть предыдущее сообщение. ;)

nickm писал(а):
11.08.2011 13:15
скрипт выполнился норм - ничего не выводит;
ошибка, ругань скрипта уходит на указанный email.

Письмо вам придет только в том случае, если при выполнении скрипта произойдет ошибка и в STDERR будет что-то выведено. Главное, чтобы сам скрипт еще соблюдал "правила хорошего тона", то бишь выводил обычные сообщения в STDOUT, сообщения об ошибках - в STDERR, а при завершении работы возвращал exit code.
Спасибо сказали:
abc123
Сообщения: 32

Re: Как сделать в CentOS чтобы если команда не выполнилась по крону, то отправилось на email сообщение с ошибкой?

Сообщение abc123 »

спасибо, указал переменную MAILTO.
Но письма не приходят.
Спасибо сказали: