shell实现双线路由切换
原理:网关有两条线路接入,一条是CNC网通光纤,网关是10.0.0.1 ,另一条是 TEL 电信 ADSL2 兆 ,网关是 20.0.0.1 。网通线路为主,电信线路为后备、当网通线路不通时,要立即切换到备用线路上,之后当网通线路恢复之后还要立刻切换到网通线路上。
注意事项:
1)侦测一方路由同断与否
2)自动切换后还可以在路由恢复后自动切回
#!/bin/bash
trap ‘echo “Bye;exit 1;”‘ 1 2 9 15
while :
do
while ping -c 1 10.0.0.1 &> /dev/null
do
sleep 2 #休息2秒钟
done
ping -c 1 20.0.0.1 &> /dev/null
if [ $? -ne 0 ]
then
echo “路由全部中断”
continue #退出后从新执行脚本
fi
route del default
route add default gw 20.0.0.1
echo “默认路由已经切换到20.0.0.1”
until ping -c 1 10.0.0.1 &> /dev/null
do
sleep 2
done
route del default
route add default gw 10.0.0.1
echo “默认路由已经切换到10.0.0.1”
done