梅林固件添加定时重启计划

折腾 2019/01/18

最近家里的米家智能设备总是不定时的失联,表现为小爱音响无法控制这些设备。只能重启路由器恢复。

然而梅林内置的重启计划(系统管理-Enable Reboot Scheduler)设置后并不生效。不晓得怎么回事…… :抠鼻:

于是想到可以直接在crontab里添加reboot命令,登上路由器SSH,crontab -e 添加 0 4 * * * reboot

凌晨4点钟,路由器倒是重启了,可是再次查看crontab,发现我添加的重启任务丢失了…… :二哈:

继续研究。

https://github.com/RMerl/asuswrt-merlin/wiki/Scheduled-Reboot 找到了解决方法

打开路由器 /jffs/scripts/init-start 脚本(如没有该文件,可以自行新建),添加以下命令

#!/bin/sh
cru a ScheduledReboot "0 4 * * * /sbin/reboot"

init-start脚本作用是:在JFFS挂载后,其他服务启动前执行脚本中的命令,等于是优先级最高的自定义脚本。

保存脚本后还要设置权限

chmod a+rx /jffs/scripts/*

OK,重启一下路由器。这样添加定时重启计划就不会丢失了。

其他自定义脚本可以参考:https://github.com/RMerl/asuswrt-merlin/wiki/User-scripts

本文标签:


20 条评论

  • fisher 评论于 回复

    我买的洋垃圾R6900其实蛮稳定,1年只hang过一次;不过还是用这个办法加了每周一凌晨4点自动重启,挺不错!

  • 命令 评论于 回复

    你好,请问一下 如果想每周重启一次 该如何处理呢

    • Bug侠 评论于 回复

      @命令
      比如,每周2的凌晨1点30分重启的命令
      30 1 * * 2 /sbin/reboot
      ———
      crontab格式请参考:https://tool.lu/crontab/

      • 命令 评论于 回复

        @Bug侠
        朋友, 我试了下 计划重启任务还是不行 这个脚本的权限应该是没有问题的 还有其他地方要注意吗

        • Bug侠 评论于 回复

          @命令
          比如,每周2的凌晨1点30分重启的完整脚本内容是:
          —————
          #!/bin/sh
          cru a ScheduledReboot “30 1 * * 2 /sbin/reboot”
          —————
          并确定给予其执行权限,如果没问题,我也不确定是什么导致的,抱歉,已经不玩梅林很久了,有点生疏。

  • wangzheguilai 评论于 回复

    请问 chmod a+rx /jffs/scripts/* 权限是怎么设置的 可以详细的说明下吗?非常感谢啦 !就差最后一步

    • Bug侠 评论于 回复

      @wangzheguilai
      搞定了吗?这个我一般是通过SSH登录到路由器执行的,貌似也可以直接在软件中心安装webshell或者shellbox来执行命令,另外好像设置里有个“Run cmd”的功能,也可以执行命令,抱歉我现在手边没有梅林的路由器了,所以只能帮你到这。 :萌:

      • wangzheguilai 评论于 回复

        @Bug侠
        还没有搞定,我用SSH登陆了,然后在命令输入chmod a+rx /jffs/scripts/* 但没有反应,还是说我方法错误, 可不可以详细说下这个设置权限的流程 SSH 我会用 这个命令到底在哪个环节下输入或者流程是什么样的。真的非常的感谢您。

        • Bug侠 评论于 回复

          @wangzheguilai
          执行 chmod a+rx /jffs/scripts/* 是没有反应的,这行命令是把这个文件夹的所有文件更改为可执行权限,是没有输出的。
          我简单给你捋一捋
          1.新建或者修改 /jffs/scripts/init-start 文件,在这个文件里写定时任务的内容,添加完后保存该文件
          2.然后SSH执行上面的命令,chmod a+rx /jffs/scripts/* 给与文件权限(这一步执行完是没有输出的,就是没反应)
          3.重启一下路由器,看看定时任务有没有丢失,如果没有丢失,说明通过脚本添加定时重启计划就成功了。

      • fisher 评论于 回复

        @Bug侠
        站长现在在用啥路由器,不求带宽高,只求有第三方固件能装FRP之类,可靠不总重启,且信号强度狠一点,不用mesh覆盖尽可能大的范围;之前我的俩R6900梅林基本符合这个条件

        • Bug侠 评论于 回复

          @fisher
          我现在的方案是:J1900软路由+网件EX7000,单扩展器覆盖强度没得说。软件在软路由上,不影响WiFi,而且可以折腾的东西也很多

          • fisher 评论于 回复

            @Bug侠
            之前用过一个EX6200v2,好像效果不咋地;感觉貌似EX系列非但不能刷固件(当然只做AP不刷也行),信号强度和原厂固件稳定性也一般(我的EX6200v2有丢配置的历史)
            后来EX6200v2就被我刷成openwrt(秒变路由)然后放着落灰了

  • sujieqi 评论于 回复

    45 4 * * * reboot
    每天4点45分重启路由器

    代码:时在后,分在前

  • sujieqi 评论于 回复

    45 4 * * * reboot
    每天4点45分重启路由器
    代码是…….
    分在前,时在后

    • Bug侠 评论于 回复

      @sujieqi
      对啊,没毛病

  • 哈哈侠 评论于 回复

    梅林改版7.9.1为了解决软件中心奔溃问题,修改了数据库类型,保证软件的稳定性,因为这次修改定时脚本和超时脚本失效了,其他项中的定时重启应该是用到改定时脚本功能,所以无法在此中定时重启,开发者权衡时应该是认为软件中心的重要性超过定时脚本,因为软件中心一旦奔溃,需要格式化整个jffs分区,这对于用户来说是一个痛,特别是380已经完结,而定时脚本的使用率普遍不高,且可以自行编写脚本解决大部分需求

  • sjq 评论于 回复

    请问怎么创建init-start 脚本

    • Bug侠 评论于 回复

      @sjq
      使用shell下的vi或者vim编辑工具,或者WinSCP,文章里没有写,您可以百度一下这几个工具的使用方法。

      • sujieqi 评论于 回复

        @Bug侠
        已处理.谢谢

    评论(本站已开启评论回复邮件通知功能,请如实填写邮箱以便及时收到回复)