скрипт проверки связи и переключения
скрипт проверки связи и переключения
#!/bin/sh
if cat /tmp/nettest | grep 1 ; then
exit
fi
if ping 192.168.1.100 -c 1 | grep ttl"=" ; then
if ping 172.16.2.1 -c 1 | grep ttl"=" ; then
echo "yes 172+100";
else
echo "" >> /var/www/netstatus.html
date >> /var/www/netstatus.html
echo "no connect to 172.16.2.1 trying to connect 192.168.1.100" >> /var/www/netstatus.html
echo "" >> /var/www/netstatus.html
echo "1" > /tmp/nettest
until ping 172.16.2.1 -c 1 | grep ttl"=" ;
do
if ping 192.168.1.100 -c 1 | grep Destination ;
then
echo "" >> /var/www/netstatus.html
date >> /var/www/netstatus.html
echo "connect to 192.168.1.100 down" >> /var/www/netstatus.html
echo "" >> /var/www/netstatus.html
echo "0" > /tmp/nettest
exit
fi
wait [10]
done
echo "" >> /var/www/netstatus.html
date >> /var/www/netstatus.html
echo "connect to 172.16.2.1 up" >> /var/www/netstatus.html
echo "" >> /var/www/netstatus.html
echo "0" > /tmp/nettest
fi
else
if ping 172.16.2.1 -c 1 | grep ttl"=" ; then
echo "" >> /var/www/netstatus.html
date >> /var/www/netstatus.html
echo "no connect to 192.168.1.100 trying to connect 172.16.2.1" >> /var/www/netstatus.html
echo "" >> /var/www/netstatus.html
echo "1" > /tmp/nettest
until ping 192.168.1.100 -c 1 | grep ttl"=" ;
do
if ping 172.16.2.1 -c 1 | grep Destination ;
then
echo "" >> /var/www/netstatus.html
date >> /var/www/netstatus.html
echo "connect to 172.16.2.1 down" >> /var/www/netstatus.html
echo "" >> /var/www/netstatus.html
echo "0" > /tmp/nettest
exit
fi
wait [10]
done
echo "" >> /var/www/netstatus.html
date >> /var/www/netstatus.html
echo "connect to 192.168.1.100 up" >> /var/www/netstatus.html
echo "" >> /var/www/netstatus.html
echo "0" > /tmp/nettest
else
echo "" >> /var/www/netstatus.html
date >> /var/www/netstatus.html
echo "no connect to 172.16.2.1 and 192.168.1.100 trying suck" >> /var/www/netstatus.html
echo "" >> /var/www/netstatus.html
echo "1" > /tmp/nettest
until ping 192.168.1.100 -c 1 | grep ttl"=" ;
do
if ping 172.16.2.1 -c 1 | grep ttl"=" ;
then
echo "" >> /var/www/netstatus.html
date >> /var/www/netstatus.html
echo "connect to 172.16.2.1 up" >> /var/www/netstatus.html
echo "" >> /var/www/netstatus.html
echo "0" > /tmp/nettest
exit
fi
wait [10]
done
echo "" >> /var/www/netstatus.html
date >> /var/www/netstatus.html
echo "connect to 192.168.1.100 up" >> /var/www/netstatus.html
echo "" >> /var/www/netstatus.html
echo "0" > /tmp/nettest
fi
fi
выставляю на обозрение и пользование но сам еще нормально не тестил :)
если есть возможность зделать это попроще или имеються ошибки попрошу совета
if cat /tmp/nettest | grep 1 ; then
exit
fi
if ping 192.168.1.100 -c 1 | grep ttl"=" ; then
if ping 172.16.2.1 -c 1 | grep ttl"=" ; then
echo "yes 172+100";
else
echo "" >> /var/www/netstatus.html
date >> /var/www/netstatus.html
echo "no connect to 172.16.2.1 trying to connect 192.168.1.100" >> /var/www/netstatus.html
echo "" >> /var/www/netstatus.html
echo "1" > /tmp/nettest
until ping 172.16.2.1 -c 1 | grep ttl"=" ;
do
if ping 192.168.1.100 -c 1 | grep Destination ;
then
echo "" >> /var/www/netstatus.html
date >> /var/www/netstatus.html
echo "connect to 192.168.1.100 down" >> /var/www/netstatus.html
echo "" >> /var/www/netstatus.html
echo "0" > /tmp/nettest
exit
fi
wait [10]
done
echo "" >> /var/www/netstatus.html
date >> /var/www/netstatus.html
echo "connect to 172.16.2.1 up" >> /var/www/netstatus.html
echo "" >> /var/www/netstatus.html
echo "0" > /tmp/nettest
fi
else
if ping 172.16.2.1 -c 1 | grep ttl"=" ; then
echo "" >> /var/www/netstatus.html
date >> /var/www/netstatus.html
echo "no connect to 192.168.1.100 trying to connect 172.16.2.1" >> /var/www/netstatus.html
echo "" >> /var/www/netstatus.html
echo "1" > /tmp/nettest
until ping 192.168.1.100 -c 1 | grep ttl"=" ;
do
if ping 172.16.2.1 -c 1 | grep Destination ;
then
echo "" >> /var/www/netstatus.html
date >> /var/www/netstatus.html
echo "connect to 172.16.2.1 down" >> /var/www/netstatus.html
echo "" >> /var/www/netstatus.html
echo "0" > /tmp/nettest
exit
fi
wait [10]
done
echo "" >> /var/www/netstatus.html
date >> /var/www/netstatus.html
echo "connect to 192.168.1.100 up" >> /var/www/netstatus.html
echo "" >> /var/www/netstatus.html
echo "0" > /tmp/nettest
else
echo "" >> /var/www/netstatus.html
date >> /var/www/netstatus.html
echo "no connect to 172.16.2.1 and 192.168.1.100 trying suck" >> /var/www/netstatus.html
echo "" >> /var/www/netstatus.html
echo "1" > /tmp/nettest
until ping 192.168.1.100 -c 1 | grep ttl"=" ;
do
if ping 172.16.2.1 -c 1 | grep ttl"=" ;
then
echo "" >> /var/www/netstatus.html
date >> /var/www/netstatus.html
echo "connect to 172.16.2.1 up" >> /var/www/netstatus.html
echo "" >> /var/www/netstatus.html
echo "0" > /tmp/nettest
exit
fi
wait [10]
done
echo "" >> /var/www/netstatus.html
date >> /var/www/netstatus.html
echo "connect to 192.168.1.100 up" >> /var/www/netstatus.html
echo "" >> /var/www/netstatus.html
echo "0" > /tmp/nettest
fi
fi
выставляю на обозрение и пользование но сам еще нормально не тестил :)
если есть возможность зделать это попроще или имеються ошибки попрошу совета
Последний раз редактировалось _ 29 янв (Сб) 2005, 09:55, всего редактировалось 3 раза.
- Быстрый Пинг
- Абориген
- Сообщения: 801
- Зарегистрирован: 08 дек (Пн) 2003, 13:37
Долго можно ждать помощи после такой просьбы~ писал(а):выставляю на обозрение и пользование но сам еще нормально не тестил
Трудно ждать от людей, что они, бросив основные дела, будут разбираться в скрипте, который не документирован и не полностью оттестирован даже автором...
Правильнее было бы сделать следующее - нормально протестировать скрипт и найдя некорректности в его работе, указать их вместе с условиями тестирования, назначением и логикой работы скрипта.
Любая случайность - это невыявленная закономерность.
- Быстрый Пинг
- Абориген
- Сообщения: 801
- Зарегистрирован: 08 дек (Пн) 2003, 13:37
- Быстрый Пинг
- Абориген
- Сообщения: 801
- Зарегистрирован: 08 дек (Пн) 2003, 13:37
~, оптимальнее всего воспользоваться командой:
Этим мы присвоим переменной $answer весь вывод команды, заключённой в обратные (!) апострофы.
После этого регулярными выражениями можно выделить любую область для дальнейшей обработки.
Код: Выделить всё
my $answer = `ping -c 1 X.X.X.X`;
После этого регулярными выражениями можно выделить любую область для дальнейшей обработки.
Любая случайность - это невыявленная закономерность.
#!/usr/bin/perl
NEX:
my $ping = `ping -c 1 192.168.1.1 -c 2`;
if ($ping =~ m/ttl/g )
{print "";}
else
{
$c=$c+1;
open(F,">> /var/www/sp_stat.html");
print F "$c no connect trying start device\n";
#print "$c no connect trying start device\n";
system ("/etc/rc.d/rc.b2c2 stop | /etc/rc.d/rc.b2c2 start");
print F "$c connected\n";
#print "$c connected\n";
close F;
}
goto NEX
вот простенький зацикленый скрипт написанный временно для поодержания постоянно отваливающегося интрефейса
NEX:
my $ping = `ping -c 1 192.168.1.1 -c 2`;
if ($ping =~ m/ttl/g )
{print "";}
else
{
$c=$c+1;
open(F,">> /var/www/sp_stat.html");
print F "$c no connect trying start device\n";
#print "$c no connect trying start device\n";
system ("/etc/rc.d/rc.b2c2 stop | /etc/rc.d/rc.b2c2 start");
print F "$c connected\n";
#print "$c connected\n";
close F;
}
goto NEX
вот простенький зацикленый скрипт написанный временно для поодержания постоянно отваливающегося интрефейса