跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 请教一下, Padavan 固件如何实现启动后每隔三天执行一次命令
未分類
20 5 月 2020

请教一下, Padavan 固件如何实现启动后每隔三天执行一次命令

请教一下, Padavan 固件如何实现启动后每隔三天执行一次命令

資深大佬 : 98546116 3

本人没有编程基础,查了下 corn 貌似并不严格支持这种方式,目前想法是用 corn 每天执行一次脚本 a,脚本 a 里判断当天是否符合隔三天的条件,然后再执行。目前有两个问题,一是这个脚本 a 咋写?查了下百度,看的有点头晕。二是这个脚本 a 如何上传到路由器固件里并保存?或者如何直接在路由器 web 界面新建一个脚本文件?
大佬有話說 (20)

  • 資深大佬 : yeqizhang

    写一个脚本,开机启动后,关机命令前的代码阻塞三天哈哈哈

  • 資深大佬 : vcheckzen

    有点经验,主可加我
    cXEzMzE5MTQ5MTA=

  • 資深大佬 : AngryPanda

    sleep

  • 主 資深大佬 : 98546116

    @AngryPanda 不是只执行一次,是每隔三天循环执行,sleep 实现不了吧

  • 資深大佬 : intelmd

    每天一次,启动后检查当前日期是不是 3 的倍数,是的话运行。

  • 資深大佬 : ETiV

    while true; do
    xxxx
    sleep 3 天
    done

  • 資深大佬 : AngryPanda

    * * */3 * * /path/to/your/file

    不行么

  • 主 資深大佬 : 98546116

    @AngryPanda 月头月尾会有问题的

  • 主 資深大佬 : 98546116

    @ETiV 请教下,如果我把它放在现成的脚本文件里,这个循环会影响后面的命令继续执行吗?

  • 資深大佬 : ETiV

    @98546116
    会影响

    可以外头包一层括号,右括号后边加一个& 放到后台执行

    但#7 的就可以的其实…

  • 資深大佬 : liyvhg

    @98546116 会

  • 資深大佬 : liyvhg

    建议贴出原始需求

  • 資深大佬 : Acoffice

    @AngryPanda 你这么写,是每分钟执行一次.

  • 主 資深大佬 : 98546116

    @ETiV 我实测*/3 这种方式出来的结果是 3 6 9····30 运行与路由器启动日期无关

  • 資深大佬 : Acoffice

    0 0 */3 * * /path/script

  • 主 資深大佬 : 98546116

    @liyvhg 原始需求就是 以路由器启动后的时间计算 每隔三天自动运行一次命令 但是我这边用 corn 实测,在月末 30 号 31 号与月初 1 号 2 号之间并不是严格的间隔三天执行

  • 資深大佬 : Acoffice

    @98546116 每次执行完,用文件记录当前日期,每天去检查一次这个日期,然后相减等于 3,就执行.

  • 主 資深大佬 : 98546116

    @Acoffice
    0 0 0 1/3 * ?最近十次运行时间为
    2020-05-22 00:00:00
    2020-05-25 00:00:00
    2020-05-28 00:00:00
    2020-05-31 00:00:00
    2020-06-01 00:00:00
    2020-06-04 00:00:00
    2020-06-07 00:00:00
    在 31 号和 1 号之间并不是 3 天,至于 0 0 */3 * *也类似,在月末 月初交替的时候会出问题的

  • 資深大佬 : imdong

    “`
    #!/bin/bash

    time_record_file=”$0.time”
    now_time=`date +%s%3N`
    time_diff=${now_time}
    if [ “$1” == ‘start’ ]; then
    echo ${now_time} > ${time_record_file}
    exit;
    elif [ “$1” == ‘start_run’ ]; then
    echo ‘0’ > ${time_record_file}
    fi
    if [ -f $time_record_file ]; then
    old_time=`cat ${time_record_file}`
    time_diff=`expr ${now_time} – ${old_time}`
    fi
    if [ ${time_diff} -lt 259200 ]; then
    exit
    fi
    echo ${now_time} > ${time_record_file}

    ############# 开始你的代码
    echo “开始运行了”

    “`

    =============
    如你帖子所希望的,每次运行前检查距离上次运行
    至于 cron 要定义 每分钟执行一次,还是每天执行一次,自己取舍吧。

    cron 里面 /path/script 定时运行即可

    开机启动加入 /path/script start (但开机时不会执行代码)

    如果需要开启时也执行一次代码,就开机启动加入 /path/script start_run

    参考资料:Google Search

    Google 关键词:
    1. shell 时间戳
    2. shell 文件是否存在
    3. shell 减法
    4. shell if 小于

  • 資深大佬 : AngryPanda

    严格的那就每天启动,然后和上次运行时间比较,看看是不是恰好是第三天。

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具