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

折腾 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

本文标签:


11条评论

  • 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.重启一下路由器,看看定时任务有没有丢失,如果没有丢失,说明通过脚本添加定时重启计划就成功了。

  • 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侠 已处理.谢谢

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