Мы все знаем, что правильный способ обработки вывода из заданий cron - это перенаправить его в файл:
0 * * * * /bin/date >> /var/log/date.log 2>&1
Тем не менее, иногда администраторы ленивы, забывчивы или невежественны и не помещают эти перенаправления; в этом случае выходные данные задания отправляются по почте в $ MAILTO или пользователю-владельцу или пользователю root. На некоторых из ящиков, которыми я управляю, почта отключена, поэтому этот вывод попадает в черную дыру. Что мне интересно, так это то, можно ли как-нибудь сказать, чтобы cron брал какой-либо вывод задания и вместо того, чтобы отправлять его по почте, выбрасывал его куда-нибудь в лог-файл? Я использую Ubuntu (8.04, но перехожу на 9.04). В этом случайном результате Google есть намек на такое решение , но я думаю, что OP, возможно, был озадачен выводом cron по сравнению с выходом заданий cron.
Я открыт для решений, которые включают немного сценариев или взлома, но в идеале это будет бит конфигурации, который я мог бы установить где-нибудь. Я не вижу никаких подсказок man cron
. Благодарность!
root: /var/log/cron.log
не работает? feep.net/sendmail/tutorial/intro/aliases.htmlЯ не думаю, что то, что вы просите, на самом деле возможно с помощью Ubuntu (или любого другого) cron.
Помимо идеи geekmonkeys, вы также можете установить $ MAILTO для локальной учетной записи и направить вывод через procmail.
источник
Никогда не слышал о такой настройке для cron, поэтому я выбрал бы сценарий.
Создайте задание cron для patrol / var / spool / cron / * и добавьте перенаправление к любому заданию, в котором его нет.
источник
Другой вариант - создать сценарий оболочки с именем cron_wrapper или что-то в этом роде, и сделать так:
Тогда всем вашим crontabs нужно что-то вроде этого:
Обратите внимание, я не тестировал этот код, это всего лишь идея.
источник
Я не знаю, что такое "стандартный cron". Существует много демонов cron, разные дистрибутивы используют разные. Vixie cron используется наиболее широко, так что, вероятно, вы это имели в виду. Но в некоторых дистрибутивах это не будет по умолчанию.
Я взял на себя разработку cron (dcron) Диллона, который используется по умолчанию в Arch Linux. Другие дистрибутивы тоже используют его, но я не знаю, является ли это по умолчанию где-либо еще. У dcron есть опция вызова,
-M
чтобы указать, что вы хотите использовать собственный скрипт вместо sendmail. Сценарий&>
вызывается без аргументов, с несколькими заголовками электронной почты и выводом любых cronjobs как stdin. (Если нет&>
вывода, скрипт не вызывается.)источник
почему бы нам не установить MAILTO = "" в конкретном пользовательском crontab. Это отключит регистрацию почтовых сообщений в / var / spool / mail /
источник