Нужно на на FreeBSD написать скрипт переключения между каналами. Готов заплатить 30$.
Описание для работы скрипта.
Есть два прова идут на сервер, один работает по статике, другой pppoe и один выход на клиентов.
Нужно чтобы по умолчанию работала статика (re1), а при ее отсутствии переключалось на pppoe (tun0), и сервер попрежнему отдавал интернет клиентам по pppoe, а когда на статике появлялся инет, то скрипт обратно переключал с tun0 на re1.
Сейчас на машинке при запуске одновременно подключено два прова и netstat светит два шлюза, нужно чтобы при запуске он сразу удалял шлюз провайдера, который работает по pppoe и потом рестартовал pf.
Для выяснения шлюза pppoe:
Код: Выделить всё
set tun_gw=`ifconfig tun0 | grep "inet "| awk '{print $4}'
Код: Выделить всё
/sbin/route delete default $tun_gw
У меня есть пример скрипта, только он почему-то не удаляет шлюзы:
Код: Выделить всё
#!/bin/sh
###
if [ -e /tmp/ping_checker.lock ]; then
#echo "Lockfile exist";
exit 0;
else
touch /tmp/ping_checker.lock
set tun_ip=`ifconfig tun0 | grep "inet "| awk '{print $2}'`
set tun_gw=`ifconfig tun0 | grep "inet "| awk '{print $4}'`
def_gw=`netstat -rn | grep default | awk '{print $2}'`
/sbin/route delete default $tun_gw
/etc/rc.d/pf restart
if ping -c 3 -S $tun_ip 8.8.8.8 > /dev/null
fi
else
if ping -c 3 -S 159.224.190.236 8.8.8.8 > /dev/null
if [ "$def_gw" != "159.224.190.254" ] > /dev/null
then
/sbin/route add default $tun_gw
/bin/route delete default 159.224.190.254
/etc/rc.d/pf restart
fi
exit 0
fi
rm -f /tmp/ping_checker.lock
fi
Пишите мне в скайп: kuhar2007
Или в аську: 425756321