OpenWrt下mwan3定时重启

我在竞斗云下用的OpenWrt里的mwan3有问题,每次启动mwan3先启动,然后拨号获取ip地址也不自动重新检测wan的状态,导致在 状态——Multiwan——状态里显示几个wan都是“interface wan is error (16) and tracking is not enable”的或者error (15)状态。

根据网上查的资料说将跃点数改成不同时,在我的机器上是错误的,这会导致负载全部100%加在最小跃点数的那条线上,这明显是不符合负载均衡要求的。其error(15)报错在于mwan3先于拨号,从而mwan认为该网络不通从而报错,故此我们可以通过重启mwan来解决该问题。

/etc/init.d/mwan3 restart

运行该命令之后,可以在mwan3状态里看到wan都恢复了。注意,若没有恢复则说明不是我所讲的问题,那么下面的也无需在看了,请参考其他教程解决该问题。

每一次启动手动运行一次这是不现实的,每次网络变动也手动运行一次是不可能的。所以我们需要一个任务来解决这个问题。由于我没有找到关于网络状态改变则运行脚本的事件配置方法,我使用了cron的折衷方案。

方法如下:

1. 首先确保安装了python

opkg install python3

,注意要自己换源,换源教程此处不再赘述。

2. 在任意位置放置一下脚本,我使用的位置是/usr/python,这个看个人喜好,保存名我写的是restart_wman3_script.py,你也可以自己定。

import os
import time

result = os.popen("mwan3 status").read()
if result.find("is error (15)") > -1:
        print("restart mwan3")
        os.system("/etc/init.d/mwan3 restart")
        time.sleep(5)

print("done")

该脚本会判断mwan3的状态,如果出现error的问题则重启。

4. 在OpenWrt中,系统——计划任务 中添加

*/1 * * * * python /usr/python/restart_wman3_script.py

并保存

到此,每分钟识别一次mwan3状态,如果有error (15)则重启一次,我在我的机子上测试通过。祝你好运。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值