как подавить вывод сообщений от крона в мыло рута
GNU/Linux, UNIX, Open Source → Программное обеспечение
dmitriy_
написал 18 сентября 2007 года в 18:29 (2300 просмотров)
Ведет себя
неопределенно; открыл 24 темы в форуме, оставил 63 комментария на сайте.
В кроне запускается самописный скрипт от имени рута. Этот скрипт выполняет единственное действие — архивацию некоторых файлов, но почему-то при этом все ссобщения архиватора со стандартного выхода падают в ящик рута и тем самым засоряют его.
Как бы мне избавиться от этих сообщений?
PS: FreeBSD 6.2
Последние комментарии
-
OlegL, 17 декабря 2023 года в 15:00 →
Перекличка
21
-
REDkiy, 8 июня 2023 года в 9:09 →
Как «замокать» файл для юниттеста в Python?
2
-
fhunter, 29 ноября 2022 года в 2:09 →
Проблема с NO_PUBKEY: как получить GPG-ключ и добавить его в базу apt?
6
-
Иванн, 9 апреля 2022 года в 8:31 →
Ассоциация РАСПО провела первое учредительное собрание
1
-
Kiri11.ADV1, 7 марта 2021 года в 12:01 →
Логи catalina.out в TomCat 9 в формате JSON
1
DevOps as a Service from Palark
24/7 SRE & DevOps service to cover all your Kubernetes needs.

* * * * * /path/to/script bla-bla bla &> /dev/null
в crontab у меня такая строка
0 * * * * root /root/my/bak/forum_bak.sh > /dev/null
а в скрипте forum_bak.sh
tar --create -z --file=${archname} --verbose ${list} > /dev/null
и все равно сообщения тара со стандартного выхода валятся в мыло
* * * * * /path/to/script bla-bla bla 1>/dev/null 2>&1
Эээ.. Так сообщения tar’а или всё-таки cron’а о том, что он выполнил задачу (скрипт с tar’ом)?
tar выводит на stderr.
читать и пользовать приведённые команды, от меня или от Master
И всё равно есть некоторые сомнения. В плане, «сообщения тара со стандартного выхода валятся в мыло». Ни stdout, ни stderr, а «мыло», мужики. «МЫЛО».
эээээ… вот от кого, так от тебя подобного ожидал меньше всего…
cron, запускаючи команду по настроенному правилу, перехватывает stdout и stderr и, если там хоть что-то есть, отправляет на почтовый аккаунт пользователя-владельца задачи. это может быть либо локальный системный почтовый ящик, либо тот, что указан в переменной MAIL.
то есть марш читать man crontab
MAILTO= указыват, например, /dev/null, но это никак не помогало.
вернее, помогало, но не совсем :), так как после казания такого ящика правила, прописанные cron, вообще не отрабатывались.
=)
Ладно, зайду с другой стороны ;). Тебя никак не настораживает то, что автор весь вывод завернул в /dev/null, однако сообщения упорно падают в «мыло»?
Ну, и в качестве придирки. Нету в этом man ничего, подбного рассказанному тобой абзацем выше ;).
не весь. только stdout:
ну прочитай соотстветствующие man 5 crontab и man cron, в одном из них это должно быть описано
например:
. cron then wakes up every minute, examining all stored crontabs, checking each command to see if it should be run in the current minute. When executing commands, any output is mailed to the owner of the crontab (or to the user named in the MAILTO environment variable in the crontab, if such exists). The children copies of cron running these pro‐ cesses have their name coerced to uppercase, as will be seen in the syslog and ps output.А, т.е. ты предполагаешь, что под «все сообщения архиватора» подразумевались сообщения об ошибках. Что ж, возможно.
Но вообще, изначально я намекал на переменную 'MAILTO’, которую надо явно указать в crontab и при этом оставить пустым её значение (MAILTO="»), после чего cron не будет надоедать сообщениями в «мыло».
Да, за лекцию по cron всё равно спасибо ;)).
Ага.
Самое весёлое когда при запуске команды с окончанием
Вывод на экран полностью не подавляется.
… идти курить man bash
от перемены мест слага^Wперенаправления результат изменяется
правильно: >/dev/null 2>&1
не сильно я уверен, что выставление в пустое значение этой переменной может помочь. но, как бы то ни было, попробовать стоит :)
вот только ощущение, что тема интересна уже только нам :D
да не за что, приходите ещё
Поможет, поможет ;). Только надо понимать, что таким способом посылка в почту результатов выполнения команд для хозяина crontab (в данном случае root) отключится вообще.
Мы ж на никспе, тут это в порядке вещей =).
не вообще, а только для задач, описанных после этой опции.
что не есть очень хорошо.. то есть, что это в порядке вещей быть интересно только нам.
«Вообще» — в смысле, независимо от результата выполнения.
«В порядке вещей» — это пофлеймить подушам ;)
Что-то у нас с тобой сегодня неконтакт какой-то…
вот это помогло
вместо MAILTO=root написать MAILTO="»
в openSUSE 10.2 это не помогает.
поэтому я требую продолжения «банкета». :)
тема интересна не только Genie & fly4life. вы еще, флудерасты, про создателя темы забыли.
Работает ;). Только что проверил.
Я тоже с интересом читаю:)
ага, есть такое..
я не зря написал после :)
то есть тебе никто не запрещает настроить одно мыло для одних задач, а второе — для других, и так в порядке записи правил ;)
то есть эффект от этой опции есть только для нижеследующих задачах.
потому, видимо, у Dr.Evil-а и не работало.
У Эвила эта опция была в самом начале crontab (так по умолчанию в opensuse 10.2). А не работало из-за того, что, скорее всего, он выставлял значение 'MAILTO=' (т.е. без пары двойных кавычек после знака равенства).