#если оба канала работают
#будет переключен на этот роутер
DEFAULT_ISP="xxx.xxx.xxx.xxx"
# далее идут ипы, которые мы будем пинговать
OVER_ISP1="216.136.204.21"
OVER_ISP2="199.185.137.3"
# проверка на наличие статических маршрутов
# на пингуемые хосты через разных провайдеров
netstat -nr | grep ${OVER_ISP1} >/dev/null 2>&1
if [ $? != 0 ]; then
echo "Add static route to ${OVER_ISP1} via ${ISP1}"
route add ${OVER_ISP1} ${ISP1} -static
fi
netstat -nr | grep ${OVER_ISP2} >/dev/null 2>&1
if [ $? != 0 ]; then
echo "Add static route to ${OVER_ISP2} via ${ISP2}"
route add ${OVER_ISP2} ${ISP2} -static
fi
# что у нас сейчас работает
current_now=`netstat -nr | grep default | awk '{print $2}'`
echo -n "ping over ISP1:"
ping -c 1 ${OVER_ISP1} >/dev/null 2>&1
if [ $? -eq 0 ]; then
echo " [OK]"
ISP1_stat=0
else
echo " [FAILED]"
ISP1_stat=1
fi
echo -n "ping over ISP2:"
ping -c 1 ${OVER_ISP2} >/dev/null 2>&1
if [ $? -eq 0 ]; then
echo " [OK]"
ISP2_stat=0
else
echo " [FAILED]"
ISP2_stat=1
fi
if [ ${ISP1_stat} -eq 1 -a ${ISP2_stat} = 0 -a \ ${current_now} = ${ISP1} ]; then
echo "ISP1 suck"
route delete default
route add default ${ISP2}
fi
if [ ${ISP1_stat} -eq 0 -a ${current_now} != ${ISP1} ]; then
echo "Back to ISP1"
route delete default
route add default ${ISP1}
fi
470 Прочтений • [Пример скрипта для переключения выделенок, при падении. (leased trouble script example)] [08.05.2012] [Комментариев: 0]