скрипт проверки связи и переключения

*nix-системы как домашние, офисные или производственные ОС.
_
Житель
Сообщения: 59
Зарегистрирован: 13 янв (Чт) 2005, 15:13
Контактная информация:

скрипт проверки связи и переключения

Сообщение _ » 28 янв (Пт) 2005, 09:37

#!/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




выставляю на обозрение и пользование но сам еще нормально не тестил :)
если есть возможность зделать это попроще или имеються ошибки попрошу совета
Последний раз редактировалось _ 29 янв (Сб) 2005, 09:55, всего редактировалось 3 раза.

Аватара пользователя
Быстрый Пинг
Абориген
Сообщения: 801
Зарегистрирован: 08 дек (Пн) 2003, 13:37

Сообщение Быстрый Пинг » 28 янв (Пт) 2005, 13:39

~ писал(а):выставляю на обозрение и пользование но сам еще нормально не тестил :)
Долго можно ждать помощи после такой просьбы :mrgreen:
Трудно ждать от людей, что они, бросив основные дела, будут разбираться в скрипте, который не документирован и не полностью оттестирован даже автором...

Правильнее было бы сделать следующее - нормально протестировать скрипт и найдя некорректности в его работе, указать их вместе с условиями тестирования, назначением и логикой работы скрипта.
Любая случайность - это невыявленная закономерность.

_
Житель
Сообщения: 59
Зарегистрирован: 13 янв (Чт) 2005, 15:13
Контактная информация:

Сообщение _ » 28 янв (Пт) 2005, 14:17

протестил пашет отменно
я rebel

Аватара пользователя
Быстрый Пинг
Абориген
Сообщения: 801
Зарегистрирован: 08 дек (Пн) 2003, 13:37

Сообщение Быстрый Пинг » 28 янв (Пт) 2005, 15:32

~, рекомендую переписать скрипт на Perl'e - получится раза в 3-4 короче.
Любая случайность - это невыявленная закономерность.

_
Житель
Сообщения: 59
Зарегистрирован: 13 янв (Чт) 2005, 15:13
Контактная информация:

Сообщение _ » 28 янв (Пт) 2005, 15:43

Быстрый Пинг, я итак на перле хотел да незнаю как там пинг проверить
я rebel

Аватара пользователя
Быстрый Пинг
Абориген
Сообщения: 801
Зарегистрирован: 08 дек (Пн) 2003, 13:37

Сообщение Быстрый Пинг » 28 янв (Пт) 2005, 15:53

~, оптимальнее всего воспользоваться командой:

Код: Выделить всё

my $answer = `ping -c 1 X.X.X.X`;
Этим мы присвоим переменной $answer весь вывод команды, заключённой в обратные (!) апострофы.
После этого регулярными выражениями можно выделить любую область для дальнейшей обработки.
Любая случайность - это невыявленная закономерность.

_
Житель
Сообщения: 59
Зарегистрирован: 13 янв (Чт) 2005, 15:13
Контактная информация:

Сообщение _ » 29 янв (Сб) 2005, 09:27

Быстрый Пинг, все понял а этот скрип чето отстойный :) но для експерианса пригодиться :)
я rebel

_
Житель
Сообщения: 59
Зарегистрирован: 13 янв (Чт) 2005, 15:13
Контактная информация:

Сообщение _ » 29 янв (Сб) 2005, 09:29

обратный апостроФ мощная штука :) мало оказываеться я перл юзал :))) а вещ мошнецкая
а давайте все свои скрипты так выкладывать чтоб все юзали
я rebel

arruah
Старожил
Сообщения: 425
Зарегистрирован: 06 сен (Пн) 2004, 13:27
Контактная информация:

Сообщение arruah » 22 фев (Вт) 2005, 09:26

ls | while read a; do chown -R `basename $a /`. $a; done
скрипт для присвоения владельца папки по имени папки
почему ты так думаешь ? Потому что у меня есть мозг.

arruah
Старожил
Сообщения: 425
Зарегистрирован: 06 сен (Пн) 2004, 13:27
Контактная информация:

Сообщение arruah » 22 фев (Вт) 2005, 09:34

почему ты так думаешь ? Потому что у меня есть мозг.

arruah
Старожил
Сообщения: 425
Зарегистрирован: 06 сен (Пн) 2004, 13:27
Контактная информация:

Сообщение arruah » 10 мар (Чт) 2005, 09:12

for i in *;do iconv -f cp866 -t cp151 $i >.temp;mv .temp $i;done
скрипт для перекодировки всего содержимого папки
почему ты так думаешь ? Потому что у меня есть мозг.

arruah
Старожил
Сообщения: 425
Зарегистрирован: 06 сен (Пн) 2004, 13:27
Контактная информация:

Сообщение arruah » 10 мар (Чт) 2005, 13:24

iconv -f cp866 -t cp1251 ibmencoded.txt > winencoded.txt
немного усовершенствованный скрипт
почему ты так думаешь ? Потому что у меня есть мозг.

Аватара пользователя
rebel
Житель
Сообщения: 63
Зарегистрирован: 08 дек (Пн) 2003, 15:51
Контактная информация:

Сообщение rebel » 17 сен (Сб) 2005, 18:37

так сегодня выложу версию на перле уже на троих провайдеров :)))

Аватара пользователя
rebel
Житель
Сообщения: 63
Зарегистрирован: 08 дек (Пн) 2003, 15:51
Контактная информация:

Сообщение rebel » 19 сен (Пн) 2005, 10:29

#!/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

вот простенький зацикленый скрипт написанный временно для поодержания постоянно отваливающегося интрефейса

Аватара пользователя
Sonic
Старожил
Сообщения: 487
Зарегистрирован: 17 янв (Пн) 2005, 13:37
Откуда: Семипалатинск
Контактная информация:

Сообщение Sonic » 19 сен (Пн) 2005, 19:42

rebel, Я только хотел на перле накалякать как ты примерно тоже и написал....
но не надо опена файла делать нуна
#rebel.pl
print "коннектед"
без С
#
system('perl rebel.pl');
or php того чувака
чмо 0755 _®
Сонымен бiттi... Ал жарайды сау бол...

Ответить

Вернуться в «*NIX»