Я пытаюсь выполнить тестовый сценарий через автоматизацию, тестирующую (sahi), таким образом, я выполняю ее неоднократно после 1 часа (через crontab).
То, что я хочу, - то, что каждый раз, когда мой тестовый сценарий перестал работать, я должен получить электронное письмо иначе нет. Прямо сейчас я получаю почту, передает ли она или перестала работать.
Короче говоря, могу я отправлять почту человеку в зависимости от вывода, я вхожу в терминал.
Я использую Ubuntu 10.10.
Pipelineing работает в кроне точно так же как в ударе. Вы могли передать вывод по каналу к сценарию, который исследует его и отправляет почту. Или еще более легкое использование 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 строк после возникновения "Ошибки": (следовательно -A
поскольку после и -B
поскольку прежде).
Почта, только отправляют, если компьютеру рабочий крон установили рабочий почтовый сервер. Сценарий для обработки вывода, конечно, более гибок и значительно больше работы.
Это кажется, что или код выхода Вашей команды не устанавливается правильно или что Вы отправляете сообщения в stdout, но не получаете/перенаправляете его. На успехе необходимо возвратиться 0 (exit 0
). И при отказе возвращают положительное число меньше чем 256 (exit 2
). Крон обнаружит код выхода и пошлет электронное письмо (переменная MAILTO в crontab) на ненулевом коде выхода.
Кроме того, если вывод отправляется в stdout или stderr, который посылается по электронной почте пользователю, независимо от кода выхода.
Посмотрите cron
(8) страница справочника для получения дополнительной информации.