恩山无线论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 6468|回复: 1

转载个SS异常重启脚本

[复制链接]
发表于 2016-3-18 23:41 | 显示全部楼层 |阅读模式
本帖最后由 ju0594 于 2016-3-18 23:48 编辑

之前发过一个帖子“有没有自动切换ss的方案?”
后来大家有说用haproxy和shell脚本的,可是对小白来说我不会呀,后来只好百度下稍微弄了点东西。
看的是飞羽博客“s-s for OpenWRT 拾遗” 里的教程
以下教程是转载的

使用计划任务检测连接状态,发生异常时候自动重启s-s

首先我们需要一个完整版的wget:
  1. opkg update
  2. opkg install wget
复制代码
然后我们新建一个脚本文件,比如/root/tester,把执行权限加上,然后写入如下内容:
  1. LOGTIME=$(date "+%Y-%m-%d %H:%M:%S")
  2. wget --spider --quiet --tries=1 --timeout=3 www.google.co.jp
  3. if [ "$?" == "0" ]; then
  4.         echo '['$LOGTIME'] No Problem.'
  5.         exit 0
  6. else
  7.         wget --spider --quiet --tries=1 --timeout=3 www.baidu.com
  8.         if [ "$?" == "0" ]; then
  9.                 echo '['$LOGTIME'] Problem decteted, restarting s-s.'
  10.                 /etc/init.d/s-s restart
  11.         else
  12.                 echo '['$LOGTIME'] Network Problem. Do nothing.'
  13.         fi
  14. fi
复制代码



该脚本通过尝试下载google主页(只是尝试建立连接并不会真的下载)来检测代理是否连通,如果尝试失败,会再次尝试下载百度主页,如果失败说明网络不通,此时什么都不做,如果下载成功,说明s-s异常,那么就重启s-s。
下面的步骤就是向crontab加上计划任务了(可以直接在Luci里面添加),比如我们每10分钟执行一次检测,就添加如下内容:
  1. # 文件格式说明
  2. #  ——分钟 (0 - 59)
  3. # |  ——小时 (0 - 23)
  4. # | |  ——日   (1 - 31)
  5. # | | |  ——月   (1 - 12)
  6. # | | | |  ——星期 (0 - 7)(星期日=0或7)
  7. # | | | | |
  8. # * * * * * 被执行的命令
  9. */10 * * * * /root/tester >> /var/log/s-s_watchdog.log 2>&1
  10. 0 1 * * 7 echo "" > /var/log/s-s_watchdog.log
复制代码

倒数第二行,前面的*/10就是每十分钟,接下来的4个* 是指任意小时、天、月、星期,这样一来 就是每10分钟执行一次了;后面是执行的命令/root/tester。
日志会输出到/var/log/s-s_watchdog.log,我们可以通过它检查计划任务运行状态。
我们可以在8分的时候,停止s-s,然后静待到时间后,查看s-s是否已经启动,并且查看日志文件。
而最后一行,我们在周日凌晨1点,定时清空日志文件,否则,如果你长期开着路由不管,日志文件会变得非常大。

还有个更高级的是添加多组服务器来切换 就不转载了 贴上地址“给openwrt路由器添加自动切换ss服务器脚本
这个脚本其实就是再第一个脚本的基础上改的。

最后:我希望能在第二个脚本的基础上添加优先级,因为不是每个人都有几组质量非常好的线路,我想让它再切换时能从优先级最高的开始重连,不行接着试第二个,直到能连接上能用的为止。希望能有对着比较精通的人帮忙改进下脚本,毕竟对这个不懂,下过功夫研究还是弄不来。





我的恩山、我的无线 The best wifi forum is right here.
发表于 2016-4-23 23:32 | 显示全部楼层
请教 " 比如/root/tester"  脚本文件是 "tester"  吗? 怎么找不到啊?

改成“比如/root/tester.sh” 可以找到 log里报错啊。。

潘多拉 难道不可以?
我的恩山、我的无线 The best wifi forum is right here.
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )

GMT+8, 2019-12-12 07:21

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表