如何每两周创建一个cron表达式

时间:2017-09-08 05:39:59

标签: cron

以下是cron表达式我试过0 0 0 */14 * ?它正在提供以下时间表

开始时间: - Friday, September 8, 2017 1:25 AM

下一个预定: -

1.  Friday, September 15, 2017 12:00 AM
2.  Friday, September 29, 2017 12:00 AM
3.  Sunday, October 1, 2017 12:00 AM
4.  Sunday, October 15, 2017 12:00 AM
5.  Sunday, October 29, 2017 12:00 AM

此表达式每个月每2周工作一次,但我的要求是必须每2周运行一次,我的意思是在执行sept 29th后,nxt计划应为October 13但它是安排October 1

5 个答案:

答案 0 :(得分:2)

每2周没有直接cron表达,但我一直关注cron表达,这类似于2周但不完全是2周

cron for every 2weeks(on 1st and 15th of every month at 1:30AM) - 30 1 1,15 * *

答案 1 :(得分:2)

30 7 1-7,14-21 * 1

“每月 1 日至 7 日以及每月 14 日至 21 日以及星期一的每天 07:30。”

答案 2 :(得分:1)

您需要指定开始日期。否则它将始终在该月的第一天重置。 所以这个表达“0 0 0 23/14 OCT?2017”是从2017年10月23日开始每2周

答案 3 :(得分:1)

每两周星期五:

0 0 * * Fri [ $(expr $(date +%W) \% 2) -eq 1 ] && /path/to/command

发现于: https://cron.help/every-2-weeks-on-friday

答案 4 :(得分:1)

我的 Ubuntu 18 上的 crontab 手册说:

<块引用>

注意:命令执行的日期可以由两个字段指定——月中的某天和一周中的某天。如果两个字段都受到限制(即不是 *),则当任一字段与当前时间匹配时,将运行该命令。例如, ``30 4 1,15 * 5'' 会导致命令在每个月的 1 号和 15 号以及每个星期五的凌晨 4:30 运行。然而,一个人可以达到预期的结果 通过向命令添加测试(请参阅下面示例 CRON 文件中的最后一个示例)。

上面提到的例子是:

# Run on every second Saturday of the month
0 4 8-14 * *    test $(date +\%u) -eq 6 && echo "2nd Saturday"