koolshare/ttsoft

关于检测ss状态并自动重新连接的一点思路。

Edelwiess opened this issue · 3 comments

  1. 判断ss状态的文件是:
    /jffs/koolshare/scripts/ss_status.sh
    #===================================================================
    #!/bin/sh

alias echo_date1='echo $(date +%Y年%m月%d日\ %X)'
export KSROOT=/jffs/koolshare
source $KSROOT/scripts/base.sh
eval dbus export ss_
date=echo_date1
LOGTIME=$(date "+%Y-%m-%d %H:%M:%S")

get_china_status(){
wget -4 --spider --quiet --tries=2 --timeout=2 www.baidu.com
if [ "$?" == "0" ]; then
log2='国内链接 【'$LOGTIME'】 ✓'
else
log2='国内链接 【'$LOGTIME'】 X'
fi
}

get_foreign_status(){
wget -4 --spider --quiet --tries=2 --timeout=2 www.google.com.tw
if [ "$?" == "0" ]; then
log1='国外链接 【'$LOGTIME'】 ✓'
else
log1='国外链接 【'$LOGTIME'】 X'
fi
}

get_china_status
get_foreign_status

http_response "$log1@@$log2"

#==================================================================
需要实现的操作是如果国外连接状态中有X就去执行
/jffs/koolshare/scripts# ss_config.sh start
个人以为这个检测每2分钟做一次就好。
但是我也不会写sh脚本,还是需要有专业人员帮助一下,我只能提供一个思路。

自力更生写了一个脚本
使用时:sh xxxx.sh

#!/bin/sh

alias echo_date1='echo $(date +%Y年%m月%d日\ %X)'
export KSROOT=/jffs/koolshare
source $KSROOT/scripts/base.sh
eval dbus export ss_
date=echo_date1
LOGTIME=$(date "+%Y-%m-%d %H:%M:%S")

get_china_status(){
wget -4 --spider --quiet --tries=2 --timeout=2 www.baidu.com
if [ "$?" == "0" ]; then
log2='【'$LOGTIME'】 ping www.baidu.com succed'
else
log2='国内链接 【'$LOGTIME'】 X'
fi
}

get_foreign_status(){
wget -4 --spider --quiet --tries=2 --timeout=2 www.google.com.tw
if [ "$?" == "0" ]; then
log1='【'$LOGTIME'】 ping www.googel.com.tw succed'
log3='No need to restart ss'
else
log1='【'$LOGTIME'】 ping www.googel.com.tw failed, Restarting shadowsocks'
sh /jffs/koolshare/scripts/ss_config.sh start
log3='ss restarted'
fi
}

get_china_status
get_foreign_status

echo $log1
echo $log2
echo $log3

#!/bin/sh

alias echo_date1='echo $(date +%Y年%m月%d日\ %X)'
export KSROOT=/jffs/koolshare
source $KSROOT/scripts/base.sh
eval dbus export ss_
date=echo_date1
LOGTIME=$(date "+%Y-%m-%d %H:%M:%S")

get_china_status(){
wget -4 --spider --quiet --tries=2 --timeout=2 www.baidu.com
if [ "$?" == "0" ]; then
log2='【'$LOGTIME'】 Testing www.baidu.com. Succed!'
else
log2='【'$LOGTIME'】 Testing www.baidu.com. Failed! Please check WAN settings.'
fi
}

get_foreign_status(){
wget -4 --spider --quiet --tries=2 --timeout=2 www.google.com.tw
if [ "$?" == "0" ]; then
log1='【'$LOGTIME'】 Testing www.googel.com.tw. Succed!'
log3='No need to restart shadowsocks.'
else
log1='【'$LOGTIME'】 Testing www.googel.com.tw. failed! Restarting shadowsocks.'
sh /jffs/koolshare/scripts/ss_config.sh start
log3='Shadowsocks restarted.'
fi
}

get_china_status
get_foreign_status

echo $log1
echo $log2
echo $log3

我写好了一个能用的了
https://github.com/Edelwiess/ss-autorestart