Установка 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 говорит по этому поводу:
Выход из cron
Как я уже говорил, выходные данные из cron отправляются по почте владельцу процесса или лицу, указанному в переменной MAILTO, но что, если вы этого не хотите? Если вы хотите отправить вывод кому-либо еще, вы можете просто направить вывод в команду mail. например
cmd | mail -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 для файла и электронной почты
/etc/crontab
не указывает значения по умолчанию.