nixp.ru v3.0

29 мая 2017,
понедельник,
03:13:09 MSK

DevOps с компанией «Флант»
dmitriy_ написал 18 сентября 2007 года в 18:29 (815 просмотров) Ведет себя неопределенно; открыл 24 темы в форуме, оставил 63 комментария на сайте.

В кроне запускается самописный скрипт от имени рута. Этот скрипт выполняет единственное действие — архивацию некоторых файлов, но почему-то при этом все ссобщения архиватора со стандартного выхода падают в ящик рута и тем самым засоряют его.

Как бы мне избавиться от этих сообщений?

PS: FreeBSD 6.2

Genie

* * * * * /path/to/script bla-bla bla &> /dev/null

dmitriy_

в crontab у меня такая строка

0 * * * * root /root/my/bak/forum_bak.sh > /dev/null

а в скрипте forum_bak.sh

tar --create -z --file=${archname} --verbose ${list} > /dev/null

и все равно сообщения тара со стандартного выхода валятся в мыло

Master

* * * * * /path/to/script bla-bla bla 1>/dev/null 2>&1

fly4life
dmitriy_
в crontab у меня такая строка

0      *      *      *      *      root      /root/my/bak/forum_bak.sh > /dev/null

а в скрипте forum_bak.sh

tar --create -z --file=${archname} --verbose ${list} > /dev/null

и все равно сообщения тара со стандартного выхода валятся в мыло

Эээ.. Так сообщения tar’а или всё-таки cron’а о том, что он выполнил задачу (скрипт с tar’ом)?

Genie
dmitriy_
в crontab у меня такая строка

0 * * * * root /root/my/bak/forum_bak.sh > /dev/null

а в скрипте forum_bak.sh

tar --create -z --file=${archname} --verbose ${list} > /dev/null

и все равно сообщения тара со стандартного выхода валятся в мыло

tar выводит на stderr.

читать и пользовать приведённые команды, от меня или от Master

fly4life
Genie
tar выводит на stderr.

читать и пользовать приведённые команды, от меня или от Master

И всё равно есть некоторые сомнения. В плане, «сообщения тара со стандартного выхода валятся в мыло». Ни stdout, ни stderr, а «мыло», мужики. «МЫЛО».

Genie
fly4life
И всё равно есть некоторые сомнения. В плане, «сообщения тара со стандартного выхода валятся в мыло». Ни stdout, ни stderr, а «мыло», мужики. «МЫЛО».

эээээ… вот от кого, так от тебя подобного ожидал меньше всего…

cron, запускаючи команду по настроенному правилу, перехватывает stdout и stderr и, если там хоть что-то есть, отправляет на почтовый аккаунт пользователя-владельца задачи. это может быть либо локальный системный почтовый ящик, либо тот, что указан в переменной MAIL.

то есть марш читать man crontab

Dr. Evil

MAILTO= указыват, например, /dev/null, но это никак не помогало.

вернее, помогало, но не совсем :), так как после казания такого ящика правила, прописанные cron, вообще не отрабатывались.

fly4life
Genie
эээээ… вот от кого, так от тебя подобного ожидал меньше всего…

cron, запускаючи команду по настроенному правилу, перехватывает stdout и stderr и, если там хоть что-то есть, отправляет на почтовый аккаунт пользователя-владельца задачи. это может быть либо локальный системный почтовый ящик, либо тот, что указан в переменной MAIL.

=)

Ладно, зайду с другой стороны ;). Тебя никак не настораживает то, что автор весь вывод завернул в /dev/null, однако сообщения упорно падают в «мыло»?

Genie
то есть марш читать man crontab

Ну, и в качестве придирки. Нету в этом man ничего, подбного рассказанному тобой абзацем выше ;).

Genie
Ладно, зайду с другой стороны ;). Тебя никак не настораживает то, что автор весь вывод завернул в /dev/null, однако сообщения упорно падают в «мыло»?

не весь. только stdout:

в crontab у меня такая строка

0 * * * * root /root/my/bak/forum_bak.sh <font color=«red»>> /dev/null</font>

а в скрипте forum_bak.sh

tar --create -z --file=${archname} --verbose ${list} <font color=«red»>> /dev/null</font>

и все равно сообщения тара со стандартного выхода валятся в мыло


Ну, и в качестве придирки. Нету в этом man ничего, подбного рассказанному тобой абзацем выше ;).

ну прочитай соотстветствующие 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&#8208;
       cesses have their name coerced to uppercase, as will be seen in the syslog and ps output.
fly4life
Genie
не весь. только stdout:

А, т.е. ты предполагаешь, что под «все сообщения архиватора» подразумевались сообщения об ошибках. Что ж, возможно.

Но вообще, изначально я намекал на переменную 'MAILTO’, которую надо явно указать в crontab и при этом оставить пустым её значение (MAILTO="»), после чего cron не будет надоедать сообщениями в «мыло».

Да, за лекцию по cron всё равно спасибо ;)).

Anarchist
Genie
не весь. только stdout

Ага.

Самое весёлое когда при запуске команды с окончанием

2>&1 >/dev/null

Вывод на экран полностью не подавляется.

Genie
Anarchist
Ага.

Самое весёлое когда при запуске команды с окончанием

2>&1 >/dev/null

Вывод на экран полностью не подавляется.

… идти курить man bash

от перемены мест слага^Wперенаправления результат изменяется

правильно: >/dev/null 2>&1

Genie
fly4life
А, т.е. ты предполагаешь, что под «все сообщения архиватора» подразумевались сообщения об ошибках. Что ж, возможно.

Но вообще, изначально я намекал на переменную 'MAILTO’, которую надо явно указать в crontab и при этом оставить пустым её значение (MAILTO="»), после чего cron не будет надоедать сообщениями в «мыло».

не сильно я уверен, что выставление в пустое значение этой переменной может помочь. но, как бы то ни было, попробовать стоит :)

вот только ощущение, что тема интересна уже только нам :D

fly4life
Да, за лекцию по cron всё равно спасибо ;)).

да не за что, приходите ещё

fly4life
Genie
не сильно я уверен, что выставление в пустое значение этой переменной может помочь. но, как бы то ни было, попробовать стоит :)

Поможет, поможет ;). Только надо понимать, что таким способом посылка в почту результатов выполнения команд для хозяина crontab (в данном случае root) отключится вообще.

Genie
вот только ощущение, что тема интересна уже только нам :D

Мы ж на никспе, тут это в порядке вещей =).

Genie
fly4life
Поможет, поможет ;). Только надо понимать, что таким способом посылка в почту результатов выполнения команд для хозяина crontab (в данном случае root) отключится вообще.


не вообще, а только для задач, описанных после этой опции.

fly4life
Мы ж на никспе, тут это в порядке вещей =).


что не есть очень хорошо.. то есть, что это в порядке вещей быть интересно только нам.

fly4life
Genie
не вообще, а только для задач, описанных после этой опции.

«Вообще» — в смысле, независимо от результата выполнения.

Genie
что не есть очень хорошо.. то есть, что это в порядке вещей быть интересно только нам.

«В порядке вещей» — это пофлеймить подушам ;)

Что-то у нас с тобой сегодня неконтакт какой-то…

dmitriy_

вот это помогло

вместо MAILTO=root написать MAILTO="»

Dr. Evil
dmitriy_
вот это помогло

вместо MAILTO=root написать MAILTO="»

в openSUSE 10.2 это не помогает.

поэтому я требую продолжения «банкета». :)

тема интересна не только Genie & fly4life. вы еще, флудерасты, про создателя темы забыли.

fly4life
Dr. Evil
в openSUSE 10.2 это не помогает.

поэтому я требую продолжения «банкета». :)

Работает ;). Только что проверил.

metal
поэтому я требую продолжения «банкета». :)

тема интересна не только Genie & fly4life. вы еще, флудерасты, про создателя темы забыли.

Я тоже с интересом читаю:)

Genie
fly4life
«Вообще» — в смысле, независимо от результата выполнения.

«В порядке вещей» — это пофлеймить подушам ;)

Что-то у нас с тобой сегодня неконтакт какой-то…

ага, есть такое..

я не зря написал после :)

то есть тебе никто не запрещает настроить одно мыло для одних задач, а второе — для других, и так в порядке записи правил ;)

то есть эффект от этой опции есть только для нижеследующих задачах.

потому, видимо, у Dr.Evil-а и не работало.

fly4life
Genie
ага, есть такое..

я не зря написал после :)

то есть тебе никто не запрещает настроить одно мыло для одних задач, а второе — для других, и так в порядке записи правил ;)

то есть эффект от этой опции есть только для нижеследующих задачах.

потому, видимо, у Dr.Evil-а и не работало.

У Эвила эта опция была в самом начале crontab (так по умолчанию в opensuse 10.2). А не работало из-за того, что, скорее всего, он выставлял значение 'MAILTO=' (т.е. без пары двойных кавычек после знака равенства).