【问题标题】:CRON job for running every 20 day and on monday每 20 天和星期一运行的 CRON 作业
【发布时间】:2020-10-09 11:37:37
【问题描述】:

我想运行一个 cron 作业,它将在每个月的每 20 天和星期一运行一次。

从一个星期一到另一个星期一应该有 20 天的间隔。

例如-

如果 cron 作业在本月的星期一运行 表示在 10 月 12 日,那么下一个作业将在 11 月 2 日和星期一运行。

帮帮我。我尝试但无法实现。

【问题讨论】:

    标签: cron cron-task


    【解决方案1】:

    也许这个工具可以帮助你:crontab.guru

    如果我理解你的问题是这样的:

    #+--------------------------- Minute (0-59)
    #|    +---------------------- Hour   (0-23)
    #|    |     +---------------- Day    (1-31)
    #|    |     |   +------------ Month  (1-12)
    #|    |     |   |   +-------- Day of week (0-6, 0=Sunday)
    #|    |     |   |   |    +--- Command to be run
    #|    |     |   |   |    |
    #v    v     v   v   v    v
    #====================================================================
    # run task At 00:00 on Monday.
     0    0     *  *   1    run_task.sh
    

    run_task.sh 中可以输入条件。

    # script to check if the task run 20 days ago.
    aux_file="/tmp/auxdate.txt"
    
    # this compare the actual date with the date in the file
    # if the diference is >= 20 the task run
    if [[ ! -e "$aux_file" || $(( ($(date '+%s') - $(cat auxdate.txt))/(60*60*24) )) -ge 20 ]]; then
        echo $(date '+%s') > "$aux_file"
        echo "RUN TASK"
        # run task...
    else
        echo "NOT RUN TASK"
    fi
    

    【讨论】:

    • 从一个星期一到另一个星期一应该有 20 天的间隔。我想实现这一目标。我已经编辑了我的问题。
    • 好的...在这种情况下,我认为您需要制作一个脚本和一个辅助文件来保存任务运行的最后时间。 cron 每周一工作,询问任务是否在 20 天前运行,在这种情况下,在文件中标记日期并运行任务。
    • 我不太喜欢编写脚本。弄清楚这一点需要很多时间。你能帮我写剧本吗?
    • 我用一个解决这个问题的简单脚本编辑答案,检查一下,希望对你有帮助。
    猜你喜欢
    • 2023-02-09
    • 2018-03-22
    • 2011-11-11
    • 2014-08-14
    • 2012-08-09
    • 1970-01-01
    • 2017-11-19
    • 2023-03-04
    • 1970-01-01
    相关资源
    最近更新 更多