Ребят суть проблемы такова. Нужно делать машине ребут при отсуцтвии пинга к опребеленному ИП.
Зделал два файла.rr.sh
------
#!/bin/sh
# Sozdaem file dlya analiza...
/bin/rm /home/star/ping/ping.txt
touch /home/star/ping/ping.txt#Zapisivaem v File rezultaty
ping -c7 10.10.15.1 >> /home/star/ping/ping.txt# 4itaem iz /home/star/ping/ping.txt
i=1
exec < /home/star/ping/ping.txt
while read string
do
echo $string i=`expr $i + 1`if [ $i -ne 3 ]
then
fi
/bin/sh /home/star/ping/tru.sh $stringi=`expr $i + 1`
done
#/bin/sh /home/star/ping/tru.sh $l2
echo $l2
exit 0tru.sh
-------
#!/bin/sh#havaet 1-y elt!
ll=$1
l=7
if [ $ll = $l ]
then
echo "REBOOTIM"
else
echo "Vsio normalno pingi idut"
exit 0
fi
exit 0
вообще у меня стал вопрос как прочитать данные из файла. чтобы просто сравнить определенную строчку допустим 4-ю. Начинается она с 7 (типа 7-мь раз пропинговать) второй файл тестит ее и и ести 7 совтадает -> будет ребут. А если пинги идут то ета строчка будет ниже и естественно ребута не будет.
Может кто поможет ?
Можно сделать проще: прочитать man ping на предмет возвращаемого значения и написать скрипт примерно так:if [ ! ping -c 3 host.dom ]
then
reboot
fi
>Можно сделать проще: прочитать man ping на предмет возвращаемого значения и написать
>скрипт примерно так:
>
>if [ ! ping -c 3 host.dom ]
>then
> reboot
>fi
И вот это готовый законченный скрипт ? %)
>>Можно сделать проще: прочитать man ping на предмет возвращаемого значения и написать
>>скрипт примерно так:
>>
>>if [ ! ping -c 3 host.dom ]
>>then
>> reboot
>>fi
>И вот это готовый законченный скрипт ? %)Если кому интересно - конечный вариант - такой
test.sh
------------
#!/bin/shping -c7 10.10.15.1
if [ $? -ge 1 ]
then
echo "pri starte ping 10.10.10.1 - ne poshli" >> /home/star/ping/ping.txt
uptime >> /home/star/ping/ping.txt
reboot
else
echo "PolYOut NORMALNIY" >> /home/star/ping/ping.txt
uptime >> /home/star/ping/ping.txt
fi
exit 0-----------
файл запусткется cron - ом черезкаждые 5-ть минут :)...
Еще раз спасибо за подсказку ...
>Можно сделать проще: прочитать man ping на предмет возвращаемого значения и написать
>скрипт примерно так:
>
>if [ ! ping -c 3 host.dom ]
>then
> reboot
>fi
#!/bin/sh
pup= ping -c3 192.168.0.2
if [ $pup ]
then
echo "Rebutim"
else
echo "NE rebutim"
fiВ исходном варанте - писал -с3 <- Унэкспектед оператор.
пришлось переделать немного. Но не спасло.
Да, если ставить пред ! $pup то выполняет then если не ставить - else.
В любом случае как не крути а выполняется ребут и при наличии пинга и прие его отсуцтвии :(. Помоги плиз
>Можно сделать проще: прочитать man ping на предмет возвращаемого значения и написать
>скрипт примерно так:
>
>if [ ! ping -c 3 host.dom ]
>then
> reboot
>fi
RETURN VALUES
The ping command returns an exit status of zero if at least one response
was heard from the specified host; a status of two if the transmission
was successful but no responses were received; or another value (from
<sysexits.h>) if an error occurred.Как я понимаю это то самое.