Установка MAILTO=user@example.org
в /etc/cron.daily/foo
не работает. Вывод сценария не отправляется в user@example.org.
Страница по http://www.unixgeeks.org/security/newbie/unix/cron-1.html также предлагает простое решение:
Файл /etc/cron.daily/foo
теперь содержит следующее:
#!/bin/sh
/usr/bin/script 2>&1 | mailx -s "$0" stefanl@example.org
Это пошлет электронное письмо 'stefanl@example.org' с предметом, который равен полному пути сценария (например. /etc/cron.daily/foo
).
Вот то, что Unixgeeks.org говорит об этом:
Вывод от крона
Как я сказал прежде, вывод от крона отправляется по почте владельцу процесса или человеку, указанному в переменной MAILTO, но что, если Вы не хотите это? Если Вы хотите отправить вывод по почте кому-то еще, можно просто передать вывод по каналу к почте команды. например.
cmd | почта-s "Предмет почтового" пользователя
Иногда, я только хочу получить ошибки от cronjob, не stdout, таким образом, я использую этот прием. Синтаксис может выглядеть неправильным на первый взгляд, но пребывать в уверенности, что работает. Следующий cronjob отправит STDOUT в/dev/null и затем обработает STDERR через конвейер.
doit 2>&1 >/dev/null | mailx -s "$0" stefanl@example.org
То же самое, но отправляют к системному журналу:
doit 2>&1 >/dev/null | /usr/bin/logger -t $ME
Также см. мой ответ на ServerFault к Cronjob stderr в файл и электронную почту