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

Исходное сообщение
"Ограничение по отправлке логов crontab"

Отправлено ashota , 21-Июн-12 15:21 
Добрый день.
Есть у меня утилитка, которую я  по crontab запускаю каждый 5 мин. Где прописать, чтоб crontab мне как root не выслал итоги запуска этой утилитки.
Вот строка из crontab
*/5     *       *       *       *       root    /etc/ping.sh

Заранее спасибо.


Содержание

Сообщения в этом обсуждении
"Ограничение по отправлке логов crontab"
Отправлено noname , 21-Июн-12 15:33 
> Добрый день.
> Есть у меня утилитка, которую я  по crontab запускаю каждый 5
> мин. Где прописать, чтоб crontab мне как root не выслал итоги
> запуска этой утилитки.
> Вот строка из crontab
> */5     *      
> *       *    
>    *       root
>    /etc/ping.sh
> Заранее спасибо.

*/5     *     *       *       *       root     export MAILTO=""&&/etc/ping.sh


"Ограничение по отправлке логов crontab"
Отправлено ashota , 21-Июн-12 17:33 
>[оверквотинг удален]
>> Вот строка из crontab
>> */5     *
>> *       *
>>    *       root
>>    /etc/ping.sh
>> Заранее спасибо.
> */5     *     *  
>      *      
>  *       root  
>   export MAILTO=""&&/etc/ping.sh

Не помогло. Все равно каждый 5 мин получаю


"Ограничение по отправлке логов crontab"
Отправлено lavr , 21-Июн-12 18:12 
>[оверквотинг удален]
>>> */5     *
>>> *       *
>>>    *       root
>>>    /etc/ping.sh
>>> Заранее спасибо.
>> */5     *     *
>>      *
>>  *       root
>>   export MAILTO=""&&/etc/ping.sh
> Не помогло. Все равно каждый 5 мин получаю

http://www.opennet.me/base/sys/cron_intro.txt.html

например:

# /etc/crontab - root's crontab for FreeBSD
#
# $FreeBSD: src/etc/crontab,v 1.33.4.1 2011/09/23 00:51:37 kensmith Exp $
#
SHELL=/bin/sh
PATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin

#-- lavr for empty MAIL

MAILTO=""

#
#minute hour    mday    month   wday    who     command
#
*/5     *       *       *       *       root    /usr/libexec/atrun
#
# Save some entropy so that /dev/random can re-seed on boot.
*/11    *       *       *       *       operator /usr/libexec/save-entropy
#
# Rotate log files every hour, if necessary.
0       *       *       *       *       root    newsyslog
#
# Perform daily/weekly/monthly maintenance.
1       3       *       *       *       root    periodic daily
15      4       *       *       6       root    periodic weekly
30      5       1       *       *       root    periodic monthly
#
# Adjust the time zone if the CMOS clock keeps local time, as opposed to
# UTC time.  See adjkerntz(8) for details.
1,31    0-5     *       *       *       root    adjkerntz -a

в данном случае уведомления о выполнении всех скриптов и утилит будут в /dev/null
если вам нужно чтобы только от вашего скрипта не высылалась почта о выполнении,
создайте crontab файл пользователя:

# crontab -u username -e
MAILTO=""
*/5     *       *       *       *  /etc/ping.sh


"Ограничение по отправлке логов crontab"
Отправлено noname , 21-Июн-12 20:48 

> Не помогло. Все равно каждый 5 мин получаю

для FreeBSD работает. Какая у Вас ОС - я не знаю


"Ограничение по отправлке логов crontab"
Отправлено zandyg , 22-Июн-12 06:52 
*/5     *       *       *       *       root    /etc/ping.sh >/dev/null 2>&1



"Ограничение по отправлке логов crontab"
Отправлено ashota , 22-Июн-12 10:08 
> */5     *      
> *       *    
>    *       root
>    /etc/ping.sh >/dev/null 2>&1

Заработала! Спасибо!


"Ограничение по отправлке логов crontab"
Отправлено lavr , 22-Июн-12 16:22 
>> */5     *
>> *       *
>>    *       root
>>    /etc/ping.sh >/dev/null 2>&1
> Заработала! Спасибо!

это у вас скрипт заработал после stdout/stderr redirect a не MAILTO, небось ping с выводом
на stdout/stderr без редиректа :( Вот ваша проблема, а не MAILTO.

На будущее - учите матчасть, чтобы не запускать через cron интерактивные
утилиты-скрипты или с выводом на stdout/stderr


"Ограничение по отправлке логов crontab"
Отправлено LSTemp , 26-Июн-12 00:17 
>>> */5     *
>>> *       *
>>>    *       root
>>>    /etc/ping.sh >/dev/null 2>&1
>> Заработала! Спасибо!
> это у вас скрипт заработал после stdout/stderr redirect a не MAILTO, небось
> ping с выводом
> на stdout/stderr без редиректа :( Вот ваша проблема, а не MAILTO.

ИМХО можно и внутри ping.sh вывод собственно ping обнулить (а кроме пинга скрипт ничего судя по названию и не делает).... не вижу разницы

ИМХО MAILTO решает вопрос глобально....

> На будущее - учите матчасть, чтобы не запускать через cron интерактивные
> утилиты-скрипты или с выводом на stdout/stderr

ИМХО это бред (про "не запускать"). часть скриптов таки все же отслеживать нужно....

PS
С Уважением, к Вам Lavr. Поэтому везде ИМХО...



"Ограничение по отправлке логов crontab"
Отправлено Ashot , 26-Июн-12 10:02 
>
> ИМХО можно и внутри ping.sh вывод собственно ping обнулить (а кроме пинга
> скрипт ничего судя по названию и не делает).... не вижу разницы

Утилита проверяет, доступен ли основной канал, если нет, то он переключает доступ к интернет по резервному каналу, но все же продолжает проверять основной. Если доступ появился, сервер переключается на основной. А в частности хотелось бы получать отчет, если сервер переключиться на резервный. Вот что в самом утилитке

#!/bin/sh                                                                      
                                                                              
IP_EXCOM="11.22.33.44"                                                      
IP_UTK="55.66.77.88"                                                        
LOG="/var/log/ping.log"                                                        
                                                                              
IP_GATEWAY="/sbin/route get default | \                                        
        /usr/bin/grep gateway | \                                              
        /usr/bin/awk '{print $2}'"                                            
                                                                              
/sbin/ping -c 2 ${IP_UTK}                                                      
if [ $? != 0 ]                                                                
then                                                                          
  /sbin/ping -c 2 ${IP_EXCOM}                                                  
    if [ $? != 0 ]                                                            
      then                                                                    
        /bin/echo -n "`/bin/date` ALARM! " >> ${LOG}                          
        /bin/echo "UTK ${IP_UTK} and EXCOM ${IP_EXCOM} not pinget" >> ${LOG}  
      else                                                                    
       /bin/echo -n "`/bin/date` UTK ${IP_UTK} not pinget," >> ${LOG}          
       if [ "x${IP_EXCOM}" = "x${IP_GATEWAY}" ]                                
        then                                                                  
         /bin/echo "`/bin/date` Default gateway (EXCOM) ${IP_GATEWAY} - OK" >> ${LOG}

else
         /bin/echo -n "`/bin/date` Switch default gateway ${IP_GATEWAY}" >> ${LOG}
         /bin/echo " to EXCOM ${IP_EXCOM}" >> ${LOG}
         /sbin/route change default ${IP_EXCOM}
#         /etc/iptonnel_bisert.sh
       fi
    fi
else
  /bin/echo "`/bin/date` UTK ${IP_UTK} ping - OK" >> ${LOG}
  if [ "x${IP_UTK}" = "x${IP_GATEWAY}" ]
    then
      /bin/echo "`/bin/date` Default gateway (UTK) ${IP_GATEWAY} - OK" >> ${LOG}
    else
      /bin/echo -n "`/bin/date` Switch default gateway ${IP_GATEWAY}" >> ${LOG}
      /bin/echo " to UTK ${IP_UTK}" >> ${LOG}
      /sbin/route change default ${IP_UTK}
#      /etc/iptonnel_bisert_utk.sh
  fi
fi


"Ограничение по отправлке логов crontab"
Отправлено lavr , 26-Июн-12 10:42 
>[оверквотинг удален]
>> это у вас скрипт заработал после stdout/stderr redirect a не MAILTO, небось
>> ping с выводом
>> на stdout/stderr без редиректа :( Вот ваша проблема, а не MAILTO.
> ИМХО можно и внутри ping.sh вывод собственно ping обнулить (а кроме пинга
> скрипт ничего судя по названию и не делает).... не вижу разницы
> ИМХО MAILTO решает вопрос глобально....
>> На будущее - учите матчасть, чтобы не запускать через cron интерактивные
>> утилиты-скрипты или с выводом на stdout/stderr
> ИМХО это бред (про "не запускать"). часть скриптов таки все же отслеживать
> нужно....

ну посмотрите выше, прямо моя строка: НЕ запускать через cron ИНТЕРАКТИВНЫЕ
и дальше ваш комментарий что это бред.

или я невнятно написал, или вы меня не поняли, смысл таков:

- использовать redirect stdout/stderr в crontab - иначе вылезут проблемы
или не забывать про stdout/stdin
- MAILTO и прочие переменные - устанавливаются для всех заданий MAILTO,
и если нужно подавить только для одного задания, лучше для него создать отдельное
расписание или для группы таких заданий


"Ограничение по отправлке логов crontab"
Отправлено LSTemp , 28-Июн-12 03:00 
>[оверквотинг удален]
>>> на stdout/stderr без редиректа :( Вот ваша проблема, а не MAILTO.
>> ИМХО можно и внутри ping.sh вывод собственно ping обнулить (а кроме пинга
>> скрипт ничего судя по названию и не делает).... не вижу разницы
>> ИМХО MAILTO решает вопрос глобально....
>>> На будущее - учите матчасть, чтобы не запускать через cron интерактивные
>>> утилиты-скрипты или с выводом на stdout/stderr
>> ИМХО это бред (про "не запускать"). часть скриптов таки все же отслеживать
>> нужно....
> ну посмотрите выше, прямо моя строка: НЕ запускать через cron ИНТЕРАКТИВНЫЕ
> и дальше ваш комментарий что это бред.

погорячился - прошу прощения.

> или я невнятно написал, или вы меня не поняли, смысл таков:

я неправильно понял очевидно.

просто хотел сказать, что вывод можно как в скрипте пинга обнулить, так и в самом кроне при вызове - там же тоже фактически скрипт (второе часто предпочтительней, ибо сам скрипт пинга может интерактивно тогда пользоваться из шела)

> - использовать redirect stdout/stderr в crontab - иначе вылезут проблемы
> или не забывать про stdout/stdin

угу. я про то же и написал, когда Вас не понял.

> - MAILTO и прочие переменные - устанавливаются для всех заданий MAILTO,
> и если нужно подавить только для одного задания, лучше для него создать
> отдельное
> расписание или для группы таких заданий

согласен. так и сказал: это - глобальное решение. для нормальной работы оно никак не подходит.