/etc/cron.daily/foo: Послать электронное письмо конкретному пользователю вместо корня?

Хотя Fink и MacPorts являются традиционными средствами получения пакетов Unix на OS X, я рекомендовал бы проверить более новый названный инструмент brew это работало лучше на меня и смешало меньше с моей системой и намного легче использовать. Это в основном просто загружает tarballs и устанавливает на/usr/local, но это автоматизирует целый процесс очень приятно.

http://mxcl.github.com/homebrew/

13
03.11.2010, 00:22
3 ответа

Установка 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 в файл и электронную почту

13
27.01.2020, 19:53

Принятие Вас имеет доступ SA на этой машине, можно создать новую учетную запись пользователя, добавить, что задачи к этому считают задачи крона. Почта для этого пользователя может затем быть переслана с помощью .forward файла в этом, считает домашнюю папку. Вам, вероятно, придется настроить полномочия для этого пользователя, если задачи крона требуют привилегированного доступа.

Или ответ этого или Stefan подходит, лучше всего действительно зависит от того, сколько стычки Вы хотите в установке его и хотите ли Вы, чтобы сообщения об ошибках перешли к корневой электронной почте или к людям, которые обычно контролируют ежедневный вывод.

Удачи

0
27.01.2020, 19:53

Более изящное решение состояло бы в том, чтобы использовать /etc/cron.d непосредственно. Вместо того, чтобы иметь Ваш сценарий в /etc/cron.daily, поместите его где-нибудь как /usr/local/sbin/myscript.sh и затем создайте файл /etc/cron.d/myscript как:

MAILTO=root,whomever@example.org
# run myscript.sh at 4:11 every day
11 4 * * * root /usr/local/sbin/myscript.sh

Это также дает Вам намного больше контроля, когда задание происходит; например, только в определенные рабочие дни и т.д. Посмотрите crontab(5) человек для получения дополнительной информации.

6
27.01.2020, 19:53

Теги

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