Я использую CentOS 5.5.
У нас есть несколько cronjobs, хранящихся в /etc/cron.daily/. Мы бы хотели, чтобы электронная почта для некоторых из этих cronjobs шла на определенный адрес электронной почты, в то время как остальные электронные письма в /etc/cron.daily/ должны идти на адрес электронной почты по умолчанию (root @ localhost).
Cronjobs в /etc/cron.daily/ запускаются из файла / etc / crontab. / etc / crontab указывает поле 'MAILTO'. Могу ли я переопределить это, установив MAILTO в моем /etc/cron.daily/foo cronjob?
Какой лучший способ справиться с этим?
/etc/crontab
не указывает значения по умолчанию.Ответы:
Установка
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
теперь содержит следующее:Это отправит письмо на stefanl@example.org с темой, равной полному пути сценария (например
/etc/cron.daily/foo
).Вот что Unixgeeks.org говорит по этому поводу:
Иногда я хочу получать ошибки только от cronjob, а не от stdout, поэтому я использую этот трюк. Синтаксис может выглядеть неправильно на первый взгляд, но будьте уверены, он работает. Следующий cronjob отправит STDOUT в / dev / null, а затем обработает STDERR через конвейер.
То же самое, но отправьте в системный журнал:
Также смотрите мой ответ на ServerFault для Cronjob stderr для файла и электронной почты
источник
Более элегантным решением будет использование
/etc/cron.d
напрямую. Вместо того, чтобы использовать ваш скрипт/etc/cron.daily
, поместите его где-то вроде,/usr/local/sbin/myscript.sh
а затем создайте файл/etc/cron.d/myscript
как:Это также дает вам гораздо больший контроль над работой; например, только в определенные дни недели и т. д. См.
crontab(5)
человека для получения дополнительной информации.источник
Предполагая, что у вас есть доступ SA на этом компьютере, вы можете создать новую учетную запись пользователя, добавить задачи в эту учетную запись cron задачи. Почту для этого пользователя можно затем переслать с помощью файла .forward в этой домашней папке учетных записей. Возможно, вам придется настроить разрешения для этого пользователя, если для задач cron требуется привилегированный доступ.
Насколько этот ответ или ответ Стефана подходят лучше всего, зависит от того, сколько хлопот вы хотите при его настройке и хотите ли вы, чтобы сообщения об ошибках отправлялись в корневую электронную почту или людям, которые обычно следят за ежедневной продукцией.
Удачи
источник