BlueRoseNote/03-UnrealEngine/流程管理与部署/路由器与NAS/如何在华硕路由器中使用自己编写的脚本.md
2023-06-29 11:55:02 +08:00

82 lines
2.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 插件参考
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"
```