
Скрипт для проверки живости канала |
![]() |
![]() |
![]() |
Автор: Administrator |
24.03.10 19:06 |
Cкрипт для проверки живости канала
Есть 3 АДСЛ канала. Периодически модемы падают (виснут, отключают свет, отваливается pppoe сессия на прова и т.д.) при этом интернет начинает тупить: перестают открываться сайты, которые балансировщиком в данный момент времени завернуты на этот модем. Вижу выход такой: bash скрипт, который пингует по каждому каналу DNS сервер прова (ping -I 172.31.255.25х xxx.xxx.xxx.xxx) и по результатам проверки меняет правила маршрутизации и шейпера. ‹ Groupware на Gentoo Задача: почтовый сервер на Gentoo › » Этот скрипт,Опубликовано HolyBoy в 10 Июнь, 2008 - 21:45. Этот скрипт, запущенный в кроне, позволяет мне работать без разрывов с ноября месяца со стримом. #!/bin/sh ping -c 2 ya.ru if [ $? -ne 0 ]; then # скрипт переинициализации правил фаерволла sh /home/init.sh; /etc/init.d/iptables save; /etc/init.d/iptables restart; fi » Благодарю!Опубликовано Heggi в 10 Июнь, 2008 - 22:35. Благодарю! На основе этого наваял:
OLDADSL1=0 while [ 1 ] ping -c 3 -s 100 $IP -I 172.31.255.2 > /dev/null ping -c 3 -s 100 $IP -I 172.31.255.3 > /dev/null if (( ($NEWADSL1!=$OLDADSL1) || ($NEWADSL2!=$OLDADSL2) || ($NEWADSL3!=$OLDADSL3) )); then OLDADSL1=$NEWADSL1 sleep 10 Собственно вопрос как сделать добавление маршрута При этом каждый "nexthop via 172.31.255.25*" должен присутствовать или отсутствовать в зависимости от значения переменной NEWADSL* (1 - присутствует, 0 - отсутствует) » Решил... Может иОпубликовано Heggi в 10 Июнь, 2008 - 22:53. Решил... Может и не оптимально, но работает... OLDADSL1=0 while [ 1 ] ping -c 3 -s 100 195.54.2.1 -I 172.31.255.2 > /dev/null ping -c 3 -s 100 195.54.2.1 -I 172.31.255.3 > /dev/null if (( ($NEWADSL1!=$OLDADSL1) || ($NEWADSL2!=$OLDADSL2) || ($NEWADSL3!=$OLDADSL3) )); then if (( $NEWADSL1 )); then ip route add default table main scope global equalize $GW1 $GW2 $GW3 OLDADSL1=$NEWADSL1 sleep 10 » Странно. У меняОпубликовано KiberGus в 11 Июнь, 2008 - 11:24. Странно. У меня pppd сам переподключается и на клиентских машинах разрывы связи почти не видны. » это еслиОпубликовано evadim в 11 Июнь, 2008 - 14:07. это если интервал небольшой, а если полчасика - он падает » Про pppd речиОпубликовано Heggi в 11 Июнь, 2008 - 16:22. Про pppd речи даже не было, pppoe сессию устанавливает сам модем. а роутер всего лишь прописывает на него шлюз » #!/bin/sh GW1="ip1" GW2="ip2"Опубликовано vovans в 11 Июнь, 2008 - 16:46. #!/bin/sh GW1="ip1" IF1=eth1 rm -f /var/lock/prov1_down.id while : ; do if ping -I $IF2 -c5 -l5 -W2 $GW2 2>&1 | grep "100% packet loss" > /dev/null ; if [ -f /var/lock/prov1_down.id ] ; if [ -f /var/lock/prov2_down.id ] ; if [ -f /var/lock/prov1_checking.id ] && [ -f /var/lock/prov1_up.id ] ; if [ -f /var/lock/prov2_checking.id ] && [ -f /var/lock/prov2_up.id ] ; if [ -f /var/lock/prov1_nowup.id ] && [ -f /var/lock/prov2_up.id ] ; if [ -f /var/lock/prov2_nowup.id ] && [ -f /var/lock/prov1_up.id ] ; if ping -I $IF1 -c5 -l5 -W2 $GW1 2>&1 | grep "64 bytes from" > /dev/null ; if ping -I $IF2 -c5 -l5 -W2 $GW2 2>&1 | grep "64 bytes from" > /dev/null ; if [ -f /var/lock/prov1_down.id ] ; if [ -f /var/lock/prov2_down.id ] ; if ping -I $IF1 -c5 -l5 -W2 $GW1 2>&1 | grep "100% packet loss" > /dev/null && ping -I $IF2 -c5 -l5 -W2 $GW2 2>&1 | grep "100 check_real_gates »
|
Последнее обновление 26.03.10 10:07 |
