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

Исходное сообщение
"Помогите закончить скрипт 'ребута' при отсуцтвии пинга."

Отправлено StarshiY , 30-Янв-03 21:51 
Ребят суть проблемы такова. Нужно делать машине ребут при отсуцтвии пинга к опребеленному ИП.
Зделал два файла.

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 $string

i=`expr $i + 1`
done
#/bin/sh /home/star/ping/tru.sh $l2
echo $l2
exit 0

tru.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 совтадает -> будет ребут. А если пинги идут то ета строчка будет ниже и естественно ребута не будет.
Может кто поможет ?


Содержание

Сообщения в этом обсуждении
"RE: Помогите закончить скрипт 'ребута' при отсуцтвии пинга."
Отправлено spf , 31-Янв-03 06:44 
Можно сделать проще: прочитать man ping на предмет возвращаемого значения и написать скрипт примерно так:

if [ ! ping -c 3 host.dom ]
then
    reboot
fi


"RE: Помогите закончить скрипт 'ребута' при отсуцтвии пинга."
Отправлено StarshiY , 31-Янв-03 11:25 
>Можно сделать проще: прочитать man ping на предмет возвращаемого значения и написать
>скрипт примерно так:
>
>if [ ! ping -c 3 host.dom ]
>then
> reboot
>fi
И вот это готовый законченный скрипт ? %)


"RE: Помогите закончить скрипт 'ребута' при отсуцтвии пинга."
Отправлено StarshiY , 01-Фев-03 02:34 
>>Можно сделать проще: прочитать man ping на предмет возвращаемого значения и написать
>>скрипт примерно так:
>>
>>if [ ! ping -c 3 host.dom ]
>>then
>> reboot
>>fi
>И вот это готовый законченный скрипт ? %)

Если кому интересно - конечный вариант - такой


test.sh
------------
#!/bin/sh

ping -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-ть минут :)...
Еще раз спасибо за подсказку ...



"RE: Помогите закончить скрипт 'ребута' при отсуцтвии пинга."
Отправлено StarshiY , 31-Янв-03 13:44 
>Можно сделать проще: прочитать 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.
В любом случае как не крути а выполняется ребут и при наличии пинга и прие его отсуцтвии :(. Помоги плиз


"RE: Помогите закончить скрипт 'ребута' при отсуцтвии пинга."
Отправлено StarshiY , 31-Янв-03 13:48 
>Можно сделать проще: прочитать 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.

Как я понимаю это то самое.