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

Исходное сообщение
"Скрипт для оповещения по почте"

Отправлено Степка , 19-Авг-03 08:36 
Задача такая - выполнять оповещение при падении узлов. Необходимые узлы пингуются, если пинг не проходит, выполняется cat (для каждого узла свое сообщение, например "host 10.0.0.1 down") и с конвеера на mail. Скрипт работает, но как только его выполнение назначается cron - он почему-то начинает действовать неверно.

#!/bin/sh
#
# Sam script

ping -t 4 192.168.1.1 || (cat /home/user/msg | /home/user/bin/n1)

Используемые файлы, применяются ввиду того, что рассылка должна производиться на разные адреса, с разными темами.

# /home/user/msg
warning! host 192.168.1.1 is down!

# /home/user/bin/n1
mail -s Warning user@mailserwer.com

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


Содержание

Сообщения в этом обсуждении
"Скрипт для оповещения по почте"
Отправлено Степка , 19-Авг-03 09:09 
Еще приходит письмо от демона Cron, следующего содержания:
ping: not found

"Скрипт для оповещения по почте"
Отправлено Алексей , 19-Авг-03 09:46 
>Еще приходит письмо от демона Cron, следующего содержания:
>ping: not found

Понятно дело... ping не в путях...
Надо или в crontabe в первой строчке написать
PATH=..... как положено
или из скрипта вызввать ping написав его с полным путем до него.


"Скрипт для оповещения по почте"
Отправлено Степка , 19-Авг-03 09:51 
>>Еще приходит письмо от демона Cron, следующего содержания:
>>ping: not found
>
>Понятно дело... ping не в путях...
Почему не в путях?
echo $PATH первым делом /sbin выдает.


"Скрипт для оповещения по почте"
Отправлено Алексей , 19-Авг-03 10:03 
>Почему не в путях?
>echo $PATH первым делом /sbin выдает.

А ты уверен, что он имено там?
Например, в линуксе он в /bin (в Gentoo)
А ты уверен, что, если скрипт выполняется не от рута, пользователь имеет
доступ к нему?



"Скрипт для оповещения по почте"
Отправлено Степка , 19-Авг-03 10:08 
>А ты уверен, что он имено там?
>Например, в линуксе он в /bin (в Gentoo)
>А ты уверен, что, если скрипт выполняется не от рута, пользователь имеет
>
>доступ к нему?
Ну я поискал и нашел, он там.
Не уверен ))).
Указал полный путь, работает.
Не подскажете, как сделать, чтобы crontab не присылал вывод отработанных команд.


"Скрипт для оповещения по почте"
Отправлено Алексей , 19-Авг-03 10:19 
>Указал полный путь, работает.
>Не подскажете, как сделать, чтобы crontab не присылал вывод отработанных команд.

Перенаправте вывод скрипта в /dev/null :))

Крон присылает что-либо, только в случае если у скрипта есть вывод.
Так же можно в самом начале crontab написать MAILTO=your@address для того
что бы получать вывод крона на адрес, отличный от адреса юзера под
которым выполняется крон.