我有两台海外的VPS,防止一台中断或者网络质量不好。今天写了一个脚本,作用是ping 两台服务器各100个包,比较丢包率,然后自动将 Privoxy 的代理切换到质量较好的一个。这个脚本也适用于在检测多个IP的网络质量(需要改造)
ota# vi /usr/local/bin/pinghost
#!/usr/local/bin/bash
HOST=("vps1.ip.here" "vps2.ip.here")
while :
do
lost[0]=0
privoxypid=`cat /var/run/privoxy/privoxy.pid`
for(( i=0;i<=1;i++ ))
do
temp=$(ping -c 100 ${HOST[$i]} | grep 'received' |awk -F ',' '{print $3}' |awk '{print $1}'| awk -F '%' '{print $1}')
lost[$i]=${temp%.*}
echo ${lost[$i]}
done
if [ "${lost[0]}" -lt "${lost[1]}" ] ; then
/usr/local/bin/gsed -i 's/7070/8080/' /usr/local/etc/privoxy/config&& kill -HUP $privoxypid
elif [ "${lost[0]}" -gt "${lost[1]}" ]; then
/usr/local/bin/gsed -i 's/8080/7070/' /usr/local/etc/privoxy/config&&kill -HUP $privoxypid
fi
sleep 600
done
~
~
我使用SSH -D 方式在本地开了7070 和 8080 两个端口,分别对应两台VPS,比较完丢包率后,通过自动修改端口,让 Privoxy 更改代理出口。这里不使用 Service Restart 来重新读取配置,面是使用 kill HUP。
~
评论
发表评论
读过之后是不是文思泉涌了?,快快让大家拜读一下你的高见吧~~~