82 lines
2.2 KiB
Markdown
82 lines
2.2 KiB
Markdown
|
# 插件参考
|
|||
|
1. Develop Plugin for Asuswrt Merlin:https://wdicc.com/develop-plugin-for-asuswrt-merlin/
|
|||
|
2. [插件集成] 【AsusWrt】自制路由器信息插件:https://bbs.hassbian.com/thread-3697-1-1.html
|
|||
|
|
|||
|
# 脚本
|
|||
|
## 脚本1:重新拨号的脚本
|
|||
|
刷的官改固件,脚本可以放到/koolshare/scripts 下,重启的话也不会丢失,官方固件的话可以放到/jffs 下
|
|||
|
```bash
|
|||
|
vi /koolshare/scripts/repppd.sh
|
|||
|
#!/bin/sh
|
|||
|
/usr/bin/logger -c "断开拨号连接"
|
|||
|
killall pppd
|
|||
|
/usr/bin/logger -c "延时10秒"
|
|||
|
sleep 10
|
|||
|
/usr/bin/logger -c "重新拨号"
|
|||
|
pppd file /tmp/ppp/options.wan0 >/dev/null 2>&1 &
|
|||
|
```
|
|||
|
## 脚本2:检测脚本
|
|||
|
检测百度是否可以连接,5秒超时,两次检测,间隔1分钟,如果两次检测都无法连接百度则执行脚本1重新拨号。具体参数看懂了自己改哦很简单的。
|
|||
|
```bash
|
|||
|
vi /koolshare/scripts/checknetwork.sh
|
|||
|
#!/bin/sh
|
|||
|
#检测网络链接畅通
|
|||
|
function network()
|
|||
|
{
|
|||
|
#超时时间
|
|||
|
local timeout=5
|
|||
|
|
|||
|
#目标网站
|
|||
|
local target=www.baidu.com
|
|||
|
|
|||
|
#获取响应状态码
|
|||
|
local ret_code=`curl -I -s --connect-timeout ${timeout} ${target} -w %{http_code} | tail -n1`
|
|||
|
if [ "x$ret_code" = "x200" ]; then
|
|||
|
|
|||
|
#网络畅通
|
|||
|
return 1
|
|||
|
else
|
|||
|
|
|||
|
#网络不畅通
|
|||
|
return 0
|
|||
|
fi
|
|||
|
return 0
|
|||
|
}
|
|||
|
|
|||
|
#第1次检测
|
|||
|
network
|
|||
|
first_check=$?
|
|||
|
|
|||
|
#睡眠60秒
|
|||
|
sleep 60
|
|||
|
|
|||
|
#第2次检测
|
|||
|
network
|
|||
|
second_check=$?
|
|||
|
if [[ $first_check -eq 0 && $second_check -eq 0 ]];then
|
|||
|
/usr/bin/logger -c "无法连接互联网,准备重新拨号!"
|
|||
|
|
|||
|
#执行脚本1重新拨号
|
|||
|
/bin/sh /koolshare/scripts/repppd.sh
|
|||
|
exit -1
|
|||
|
fi
|
|||
|
/usr/bin/logger -c "网络正常"
|
|||
|
exit
|
|||
|
```
|
|||
|
|
|||
|
## 脚本3:开机添加定时任务脚本
|
|||
|
因为路由器重启后,crontab的定时任务会被清空,所以需要在开机时用命令添加定时检测任务, /jffs/scripts/这个目录下的脚本在重启后都会重新执行。我写的是每10分钟执行一次网络检测的脚本。
|
|||
|
|
|||
|
```bash
|
|||
|
vi /jffs/scripts/services-start.sh
|
|||
|
|
|||
|
#!/bin/sh
|
|||
|
|
|||
|
#添加定时任务,每10分钟检测网络一次
|
|||
|
|
|||
|
/usr/sbin/cru a checknetwork "*/10 * * * * /bin/sh /koolshare/scripts/checknetwork.sh"
|
|||
|
|
|||
|
#每周一早上6点05分,重新拨号
|
|||
|
|
|||
|
/usr/sbin/cru a repppd "5 6 * * 1 /bin/sh /koolshare/scripts/repppd.sh"
|
|||
|
```
|