может кто нибудь может помочь или указать направление :)нужно программа которая будет ping - овать определеный ip и если нет связи с ним то довать на местной станции где запущена прога reboot
сам я только начинаю заниматься прогармированием под Linux :)
>может кто нибудь может помочь или указать направление :)
>
>нужно программа которая будет ping - овать определеный ip и если нет
>связи с ним то довать на местной станции где запущена прога
>reboot
>
>сам я только начинаю заниматься прогармированием под Linux :)самое простое написать оболочку для пинга, к примеру:
#! /usr/bin/perl
#check icmp network host workinguse strict;
my $host = $ARGV[0] or die "Usage: ./host_active.pl 'host'\n";
my $bad_rez = 100;my $result = `ping -c 1 $host`;
if($result =~ m/received, (\d+)% packet loss,/) {
if($1 == $bad_rez) {
print "Host $host die!\n";
} else {
print "Host $host live!\n";
}
} else {
print "Bad command execute!!! internal error!\n";
}
Добавь в cron задание типа:
ping -c 1 host || reboot
Спасиб :)
>Добавь в cron задание типа:
>ping -c 1 host || rebootМожет быть хотя бы
ping -c 1 host || ping -c 1 host || ping -c 1 host || reboot
а то, вдруг кто "файлик качать" вздумает в неудачный %) момент, а кто-то другой будет удивляться, чегой-то "местная станция" перегружается.
А вообще перезагружать сервер это извращение, как-то если падает канал можно только PPP перезагружать, и желательно писать лог, чтоб не искать посему сервер постоянно перезагружаться самопроизвольно#! /bin/sh
host="192.168.100.3"
act="/tmp/act"
log="/var/log/routing.log"
LAN_I="eth1"
ping -c10 $host &> /dev/null
ex_code=$?
if [ $ex_code -gt 0 ]; then
if [ ! -e $act ]; then
echo `date +%d/%m/%y%t%X`" (!) server has lost connection with host" >> $log
echo `date +%d/%m/%y%t%X`" //server has lost connection with host"|mutt -c ХХХХХХХХХХ@sms.kyivstar.net -s "server"
echo `date +%d/%m/%y%t%X`" //server has lost connection with host"|mutt -c user@domen.com -s "server"
traceroute $host >> $log
reboot
touch $act;
else
echo `date +%d/%m/%y%t%X`" Still no connection ..." >> $log;
traceroute $host >> $log
exit 0
fi;
else
if [ -e $act ]; then
((act_age=(`date +%s` - `date -r $act +%s`)/60))
echo `date +%d/%m/%y%t%X`" (>) Have a connection on host. Inactivity time is $act_age min" >> $log
echo `date +%d/%m/%y%t%X`" //Have connection on host.Inactivity time is $act_age min"|mutt -c xxxxxxxxxx@sms.kyivstar.net -s "Server"
echo `date +%d/%m/%y%t%X`" //Have connection on host.Inactivity time is $act_age min"|mutt -c user@domen.com -s "Server"rm $act >> $log;
else
exit 0
fi;
fi;
exit 0
>может кто нибудь может помочь или указать направление :)
>
>нужно программа которая будет ping - овать определеный ip и если нет
>связи с ним то довать на местной станции где запущена прога
>reboot
>
>сам я только начинаю заниматься прогармированием под Linux :)И что интересно этот вопрос подымается с завидной регулярностью:
http://www.opennet.me/openforum/vsluhforumID9/1333.html
http://www.opennet.me/openforum/vsluhforumID9/7804.htmlЛибо какой-то свихнувшийся препод задает такие задания, либо это такой странный образ мышления у людей - выдирать гланды через ж* :)))
>И что интересно этот вопрос подымается с завидной регулярностью:Хороший простой и неправильный вопрос без (правильного) ответа. Потому и регулярный.
>Либо какой-то свихнувшийся препод задает такие задания,
Предлагаю в качестве учЁбного задания обсудить написание сервиса с пингом и format c: && setupNT.exe для починки ОС. Ой, это не та "ОС"...
>либо это такой странный образ мышления у людей - выдирать гланды через ж* :)))
Как известно (поколениям юзеров), любую проблему можно решить перезагрузкой, перестановкой сервис-пака, приложения или всей системы со всеми приложениями "с нуля". Этот способ подразумевает невозможность или нежелание получения информации о причине проблемы и её использования для борьбы не со следствием, а с причиной. ... Несколько поколений пользователей должны жить и умереть _без_ Win*, наверное.