Добрый день.
Есть у меня утилитка, которую я по crontab запускаю каждый 5 мин. Где прописать, чтоб crontab мне как root не выслал итоги запуска этой утилитки.
Вот строка из crontab
*/5 * * * * root /etc/ping.shЗаранее спасибо.
> Добрый день.
> Есть у меня утилитка, которую я по crontab запускаю каждый 5
> мин. Где прописать, чтоб crontab мне как root не выслал итоги
> запуска этой утилитки.
> Вот строка из crontab
> */5 *
> * *
> * root
> /etc/ping.sh
> Заранее спасибо.*/5 * * * * root export MAILTO=""&&/etc/ping.sh
>[оверквотинг удален]
>> Вот строка из crontab
>> */5 *
>> * *
>> * root
>> /etc/ping.sh
>> Заранее спасибо.
> */5 * *
> *
> * root
> export MAILTO=""&&/etc/ping.shНе помогло. Все равно каждый 5 мин получаю
>[оверквотинг удален]
>>> */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
> Не помогло. Все равно каждый 5 мин получаю
для FreeBSD работает. Какая у Вас ОС - я не знаю
*/5 * * * * root /etc/ping.sh >/dev/null 2>&1
> */5 *
> * *
> * root
> /etc/ping.sh >/dev/null 2>&1Заработала! Спасибо!
>> */5 *
>> * *
>> * root
>> /etc/ping.sh >/dev/null 2>&1
> Заработала! Спасибо!это у вас скрипт заработал после stdout/stderr redirect a не MAILTO, небось ping с выводом
на stdout/stderr без редиректа :( Вот ваша проблема, а не MAILTO.На будущее - учите матчасть, чтобы не запускать через cron интерактивные
утилиты-скрипты или с выводом на stdout/stderr
>>> */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. Поэтому везде ИМХО...
>
> ИМХО можно и внутри 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
>[оверквотинг удален]
>> это у вас скрипт заработал после 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,
и если нужно подавить только для одного задания, лучше для него создать отдельное
расписание или для группы таких заданий
>[оверквотинг удален]
>>> на stdout/stderr без редиректа :( Вот ваша проблема, а не MAILTO.
>> ИМХО можно и внутри ping.sh вывод собственно ping обнулить (а кроме пинга
>> скрипт ничего судя по названию и не делает).... не вижу разницы
>> ИМХО MAILTO решает вопрос глобально....
>>> На будущее - учите матчасть, чтобы не запускать через cron интерактивные
>>> утилиты-скрипты или с выводом на stdout/stderr
>> ИМХО это бред (про "не запускать"). часть скриптов таки все же отслеживать
>> нужно....
> ну посмотрите выше, прямо моя строка: НЕ запускать через cron ИНТЕРАКТИВНЫЕ
> и дальше ваш комментарий что это бред.погорячился - прошу прощения.
> или я невнятно написал, или вы меня не поняли, смысл таков:
я неправильно понял очевидно.
просто хотел сказать, что вывод можно как в скрипте пинга обнулить, так и в самом кроне при вызове - там же тоже фактически скрипт (второе часто предпочтительней, ибо сам скрипт пинга может интерактивно тогда пользоваться из шела)
> - использовать redirect stdout/stderr в crontab - иначе вылезут проблемы
> или не забывать про stdout/stdinугу. я про то же и написал, когда Вас не понял.
> - MAILTO и прочие переменные - устанавливаются для всех заданий MAILTO,
> и если нужно подавить только для одного задания, лучше для него создать
> отдельное
> расписание или для группы таких заданийсогласен. так и сказал: это - глобальное решение. для нормальной работы оно никак не подходит.