公司用VPN连接到丹麦的服务器,由于某些非可抗特定原因,网络不是很稳定(只是到VPN服务器),基本情况是网通快但是偶尔会掉线,电信慢,但基本上能连通。但是,网通掉线后大概三五分钟后,又会自动恢复。
这样子,每次一掉线,我就要手动去切换线路,很是麻烦。于是想写了下面这个脚本来自动完成这个过程:
#!/bin/bash
while [ 1 ] ; do
ping -v -c 10 192.168.2.1 > /dev/null 2>&1
PINGSTA=$?
if [ ! $PINGSTA -eq 0 ]; then
ip route add 202.103.96.112 via 192.168.1.1
/etc/init.d/openvpn restart
sleep 300
fi
route |grep '202.103.96.112' > /dev/null 2>&1
ROUSTA=$?
if [ $ROUSTA -eq 0 ] ; then
ip route del 202.103.96.112 via 192.168.1.1
/etc/init.d/openvpn restart
sleep 30
fi
done
while [ 1 ] ; do
ping -v -c 10 192.168.2.1 > /dev/null 2>&1
PINGSTA=$?
if [ ! $PINGSTA -eq 0 ]; then
ip route add 202.103.96.112 via 192.168.1.1
/etc/init.d/openvpn restart
sleep 300
fi
route |grep '202.103.96.112' > /dev/null 2>&1
ROUSTA=$?
if [ $ROUSTA -eq 0 ] ; then
ip route del 202.103.96.112 via 192.168.1.1
/etc/init.d/openvpn restart
sleep 30
fi
done