mirror of
https://github.com/coolsnowwolf/lede.git
synced 2025-04-15 18:03:30 +00:00
48 lines
1.4 KiB
Bash
48 lines
1.4 KiB
Bash
#!/bin/sh
|
|
|
|
LOGTIME=$(date "+%Y-%m-%d %H:%M:%S")
|
|
|
|
CURRENT=$(ls -l /etc/shadowsocksr.json | awk -F "." '{print $4}')
|
|
|
|
if [ "$CURRENT" == "backup" ]; then
|
|
echo "[$LOGTIME] Backup server is running."
|
|
MAIN=$(cat /etc/shadowsocksr.json.main | awk -F '\"' '/\"server\"/ {print $4}')
|
|
PM=$(ping -c 3 $MAIN | grep 'loss' | awk -F ',' '{ print $3 }' | awk -F "%" '{ print $1 }')
|
|
if [ "$PM" -lt "50" ]; then
|
|
echo "[$LOGTIME] Main server up,$PM% packet loss, switch back."
|
|
ln -sf /etc/shadowsocksr.json.main /etc/shadowsocksr.json
|
|
CURRENT=$(ls -l /etc/shadowsocksr.json | awk -F "." '{print $4}')
|
|
/etc/init.d/shadowsocksr restart
|
|
sleep 3
|
|
else
|
|
echo "[$LOGTIME] Main server down,$PM% packet loss."
|
|
fi
|
|
fi
|
|
|
|
wget --spider --quiet -T 3 www.google.com.hk
|
|
if [ "$?" == "0" ]; then
|
|
echo "[$LOGTIME] No problem."
|
|
exit 0
|
|
else
|
|
wget --spider --quiet -T 3 www.baidu.com
|
|
if [ "$?" == "0" ]; then
|
|
echo "[$LOGTIME] Problem decteted, restart ShadowsocksR."
|
|
/etc/init.d/shadowsocksr restart
|
|
if [ "$CURRENT" == "main" ]; then
|
|
sleep 3
|
|
wget --spider --quiet -T 3 www.google.com.hk
|
|
if [ "$?" == "0" ]; then
|
|
echo "[$LOGTIME] ShadowsocksR recovered."
|
|
exit 0
|
|
else
|
|
echo "[$LOGTIME] Main server down, switch to backup server."
|
|
ln -sf /etc/shadowsocksr.json.backup /etc/shadowsocksr.json
|
|
/etc/init.d/shadowsocksr restart
|
|
exit 0
|
|
fi
|
|
fi
|
|
else
|
|
echo "[$LOGTIME] Network problem. Do nothing."
|
|
fi
|
|
fi
|