Как заставить cron отправлять электронную почту с журналом ошибок, когда скрипт выдает ошибки?

Вы смотрели http://geany-users.466218.n3.nabble.com/Geany-Users-How-to-Set -Custom-Commands-in-Geany-tp4025693p4025696.html ?

Отсюда:

Привет,

 1. Откройте диалоговое окно "Установить пользовательские команды" 
2. Нажмите кнопку "Добавить" 
3. Введите имя команды с курсором 
4. Нажмите Enter (требуется для сохранения команды) 
5. Щелкните ту же строку в столбце "Ярлык" 
6. Введите имя / метку для команды 
7. Нажмите Enter (требуется для сохранения метки) 
8. Нажмите кнопку ОК 
 

. Для использования: нажмите 1-9 (в зависимости от того, какой номер вы добавили) или используйте Правка-> Формат-> Отправить выделение -> ваша новая команда Или щелкните правой кнопкой мыши область редактора для контекстного меню, как указано выше

Ура, Мэтью Кисть

3
06.10.2016, 04:48
2 ответа

Просто измените | (труба ) к || (an или ) (при условии, что скрипт правильно использует коды выхода), хотя лучше изменить скрипт так, чтобы он выводил только при ошибке, и это лучше:

MAILFROM=myemail@something.com
MAILTO=myemail@something.com
20 6-10 * * 1-5 ~/job_failure_test.sh

Уродливый способ;

20 6-10 * * 1-5 ~/job_failure_test.sh > ~/job_fail.log 2>&1 || mail -s "Errors" myemail@something.com < ~/job_fail.log
11
27.01.2020, 21:08

Эта функция встроена в cron! Если команда выдает какой-либо результат или возвращает ненулевой статус, то cron отправляет вам письмо.

Многие современные дистрибутивы не настраивают локальную почту. Если это не так, установите агент передачи почты (MTA). Смотрите, например, эту тему для Ubuntu, или Минимальный MTA, доставляющий почту локально (для cron)?, если вам нужно что-то минималистичное. Или просто установите обычный MTA, такой как Exim или Postfix, и настройте его только на локальную доставку (см., например, эту тему) для Debian. Когда локальная почта настроена, вы можете читать свою локальную почту с помощью вашего любимого почтового клиента.

Вместо того, чтобы читать почту локально, вы можете создать файл ~/.forward содержащий внешний адрес электронной почты, и вся ваша локальная почта будет пересылаться туда. Если вы выбираете пересылку, у вас должен быть MTA, способный отправлять почту вовне ("smarthost").

В качестве альтернативы установите переменную MAIL в кронтабе, чтобы заставить его отправлять почту непосредственно на этот адрес. Для этого также необходимо, чтобы ваша система могла отправлять электронную почту извне.

8
27.01.2020, 21:08

Теги

Похожие вопросы