URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 69259
[ Назад ]

Исходное сообщение
"Отключение логирования cron`а"

Отправлено Terabyte , 02-Окт-06 13:38 
У меня крон после каждого исполнения задачи шлет мыло на /var/mail/root, как отключить это?

А то за неделю мыло рута 100 мегов превышает... =(


Содержание

Сообщения в этом обсуждении
"Отключение логирования cron`а"
Отправлено Kts , 02-Окт-06 14:02 
>У меня крон после каждого исполнения задачи шлет мыло на /var/mail/root, как
>отключить это?
>
>А то за неделю мыло рута 100 мегов превышает... =(


просмотри выполняемые скрипты и убери оттуда любой вывод, т.е. закомментируй все операторы вывода на консоль (echo, print,...).


"Отключение логирования cron`а"
Отправлено Gennadi , 02-Окт-06 14:38 
>>У меня крон после каждого исполнения задачи шлет мыло на /var/mail/root, как
>>отключить это?
>>
>>А то за неделю мыло рута 100 мегов превышает... =(
>

например так:

59 1  * * *     root    /path/script > /dev/null 2>&1


"Отключение логирования cron`а"
Отправлено Terabyte , 02-Окт-06 14:40 
>просмотри выполняемые скрипты и убери оттуда любой вывод, т.е. закомментируй все операторы
>вывода на консоль (echo, print,...).

Например:

*/10 * * * * /usr/local/apache/bin/apachectl restart

From root@bsd.xss.ru Mon Oct  2 13:30:02 2006
Return-Path: <root@bsd.xss.ru>
Received: from bsd.xss.ru (localhost [127.0.0.1])
    by bsd.xss.ru (8.13.8/8.13.8) with ESMTP id k929U229032912
    for <root@bsd.xss.ru>; Mon, 2 Oct 2006 13:30:02 +0400 (MSD)
    (envelope-from root@bsd.xss.ru)
Received: (from root@localhost)
    by bsd.xss.ru (8.13.8/8.13.8/Submit) id k929U0hj032909;
    Mon, 2 Oct 2006 13:30:00 +0400 (MSD)
    (envelope-from root)
Date: Mon, 2 Oct 2006 13:30:00 +0400 (MSD)
Message-Id: <200610020930.k929U0hj032909@bsd.xss.ru>
From: root@bsd.xss.ru (Cron Daemon)
To: root@bsd.xss.ru
Subject: Cron <root@bsd> /usr/local/apache/bin/apachectl restart
X-Cron-Env: <SHELL=/bin/sh>
X-Cron-Env: <HOME=/root>
X-Cron-Env: <PATH=/usr/bin:/bin>
X-Cron-Env: <LOGNAME=root>
X-Cron-Env: <USER=root>

/usr/local/apache/bin/apachectl restart: httpd restarted


"Отключение логирования cron`а"
Отправлено Gennadi , 02-Окт-06 14:43 
>>просмотри выполняемые скрипты и убери оттуда любой вывод, т.е. закомментируй все операторы
>>вывода на консоль (echo, print,...).
>
>Например:
>
>*/10 * * * * /usr/local/apache/bin/apachectl restart
>
>From root@bsd.xss.ru Mon Oct  2 13:30:02 2006
>Return-Path: <root@bsd.xss.ru>
>Received: from bsd.xss.ru (localhost [127.0.0.1])
> by bsd.xss.ru (8.13.8/8.13.8) with ESMTP id k929U229032912
>    for <root@bsd.xss.ru>; Mon, 2 Oct 2006 13:30:02 +0400 (MSD)
> (envelope-from root@bsd.xss.ru)
>Received: (from root@localhost)
> by bsd.xss.ru (8.13.8/8.13.8/Submit) id k929U0hj032909;
> Mon, 2 Oct 2006 13:30:00 +0400 (MSD)
> (envelope-from root)
>Date: Mon, 2 Oct 2006 13:30:00 +0400 (MSD)
>Message-Id: <200610020930.k929U0hj032909@bsd.xss.ru>
>From: root@bsd.xss.ru (Cron Daemon)
>To: root@bsd.xss.ru
>Subject: Cron <root@bsd> /usr/local/apache/bin/apachectl restart
>X-Cron-Env: <SHELL=/bin/sh>
>X-Cron-Env: <HOME=/root>
>X-Cron-Env: <PATH=/usr/bin:/bin>
>X-Cron-Env: <LOGNAME=root>
>X-Cron-Env: <USER=root>
>
>/usr/local/apache/bin/apachectl restart: httpd restarted


*/10 * * * * /usr/local/apache/bin/apachectl restart > /dev/null 2>&1


"Отключение логирования cron`а"
Отправлено Terabyte , 02-Окт-06 14:45 
>*/10 * * * * /usr/local/apache/bin/apachectl restart > /dev/null 2>&1

А если сложная команда? cmd && cmd && cmd и т.д., то придется ведь в конце каждой ставить >/dev/null ... Есть ли другие пути? Просто запретить ему слать письма.

PS: что значит и зачем - "2>&1"?


"Отключение логирования cron`а"
Отправлено lavr , 02-Окт-06 15:45 
>>*/10 * * * * /usr/local/apache/bin/apachectl restart > /dev/null 2>&1
>
>А если сложная команда? cmd && cmd && cmd и т.д., то придется ведь в конце каждой ставить >/dev/null ... Есть ли другие пути? Просто запретить ему слать письма.
>
>PS: что значит и зачем - "2>&1"?

# man crontab (читать про MAILTO)

понимание перенаправления STDERR и STDOUT - читать man используемого SHELL'а:

stdin - файловый дескриптор 0
stdout - ... 1
stderr - ... 2

для самостоятельного изучение: перенаправление стандартного ввода, вывода и ошибок,
в sh/bash (redirect stdout & stderr):

&>куда == >куда 2>&1

# command &> /dev/null
или
# command >/path/file.log 2>&1

Для csh/tcsh - изучить самомтоятельно

ps. системный crontab (/etc/crontab) отличается от пользовательского, crontab пользователя
root != /etc/crontab и формат у них чуть-чуть разный по кол-ву полей


"Отключение логирования cron`а"
Отправлено Terabyte , 02-Окт-06 20:27 
Спасибо, "> /dev/null 2>&1" помогло, правдо так и не понял, что это значит... =(

"Отключение логирования cron`а"
Отправлено lavr , 02-Окт-06 20:58 
>Спасибо, "> /dev/null 2>&1" помогло, правдо так и не понял, что это значит... =(

когда у тебя интерактивный сеанс - выполнение команды, утилиты или скрипта куда
будет производить вывод сообщений и ошибок?!
а чтобы все это не выводилось на экран что нужно сделать? правильно - перенаправить
stdout и stderr в лог-файл или /dev/null

Что тут непонятного?!