Задача такая - выполнять оповещение при падении узлов. Необходимые узлы пингуются, если пинг не проходит, выполняется cat (для каждого узла свое сообщение, например "host 10.0.0.1 down") и с конвеера на mail. Скрипт работает, но как только его выполнение назначается cron - он почему-то начинает действовать неверно.#!/bin/sh
#
# Sam scriptping -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 - почему-то скрипт действует так, будто узлы недоступны, то есть сообщения отправляются.
Еще приходит письмо от демона Cron, следующего содержания:
ping: not found
>Еще приходит письмо от демона Cron, следующего содержания:
>ping: not foundПонятно дело... ping не в путях...
Надо или в crontabe в первой строчке написать
PATH=..... как положено
или из скрипта вызввать ping написав его с полным путем до него.
>>Еще приходит письмо от демона Cron, следующего содержания:
>>ping: not found
>
>Понятно дело... ping не в путях...
Почему не в путях?
echo $PATH первым делом /sbin выдает.
>Почему не в путях?
>echo $PATH первым делом /sbin выдает.А ты уверен, что он имено там?
Например, в линуксе он в /bin (в Gentoo)
А ты уверен, что, если скрипт выполняется не от рута, пользователь имеет
доступ к нему?
>А ты уверен, что он имено там?
>Например, в линуксе он в /bin (в Gentoo)
>А ты уверен, что, если скрипт выполняется не от рута, пользователь имеет
>
>доступ к нему?
Ну я поискал и нашел, он там.
Не уверен ))).
Указал полный путь, работает.
Не подскажете, как сделать, чтобы crontab не присылал вывод отработанных команд.
>Указал полный путь, работает.
>Не подскажете, как сделать, чтобы crontab не присылал вывод отработанных команд.Перенаправте вывод скрипта в /dev/null :))
Крон присылает что-либо, только в случае если у скрипта есть вывод.
Так же можно в самом начале crontab написать MAILTO=your@address для того
что бы получать вывод крона на адрес, отличный от адреса юзера под
которым выполняется крон.