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

2.2 KiB
Raw Blame History

插件参考

  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 下

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重新拨号。具体参数看懂了自己改哦很简单的。

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分钟执行一次网络检测的脚本。

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"