Как контролировать вывод crontab?

Я пытаюсь запустить тестовый пример с помощью тестирования автоматизации (sahi), поэтому я запускаю его повторно через 1 час (через crontab). Я хочу, чтобы всякий раз, когда мой тестовый пример терпел неудачу, я должен был получить электронное письмо, если нет. Прямо сейчас я получаю почту, проходит ли она или не работает. Короче говоря, могу ли я отправить почту человеку в зависимости от результата, который я получаю в терминале.

Я использую Ubuntu 10.10.

2
задан 2 April 2012 в 01:12

2 ответа

Трубопроводы работают в cron так же, как и в bash. Вы можете передать вывод сценарию, который проверяет его и отправляет почту. Или еще проще использовать grep:

# in /etc/crontab

MAILTO=a.b@c.de
SHELL=/bin/bash

# m h dom mon dow user      command
30  * *   *   *   confus    /home/confus/bin/someCommand.sh | grep -A 11 -B 10 "Error:"

Это отправит электронное письмо на a.b @ .c.de, когда на выходе someCommand.sh появляется сообщение об ошибке «Ошибка:». В этом случае текст сообщения электронной почты будет выводиться из 10 строк до и 11 строк после появления «Error:» (отсюда -A для after и -B для ранее).

Почта отправляется только в том случае, если на компьютере, на котором работает cron, установлен рабочий почтовый сервер. Скрипт для обработки вывода, конечно, более гибкий и значительно более эффективный.

4
ответ дан 25 May 2018 в 19:04

Кажется, что либо код выхода вашей команды настроен неправильно, либо вы отправляете сообщения на stdout, но не захватываете / не перенаправляете его. Успешно, вы должны вернуть 0 (exit 0). И при отказе возвращают положительное число менее 256 (exit 2). Cron будет обнаруживать код выхода и отправлять электронную почту (переменная MAILTO в crontab) на ненулевой код выхода.

Кроме того, если какой-либо вывод отправляется на stdout или stderr, он отправляется пользователю по электронной почте, независимо от того, кода выхода.

Для получения дополнительной информации см. справочную страницу cron (8).

2
ответ дан 25 May 2018 в 19:04

Другие вопросы по тегам:

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