1

如何cronjob在指定时间(例如凌晨 4:10)每 2 天运行一次?

下面的表达对吗?

10 04 * * */2 MY-COMMAND
4

2 回答 2

1

不,您在一周中可以被 2 整除的日子跑步。所以你在周日、周二、周四、周六运行它;Sun, Tue, ...(此字段从零开始。)

如果您将 移动*/2到月份字段(第四个字段),您会遇到同样的问题,即月份的周期不均匀,天数不均匀,但异常的日子一年只会发生七次(闰年八次)而不是每周。

如果您绝对需要每隔一天运行一次作业,则需要某种外部逻辑。也许让脚本检查一个运行文件,如果它不到 25 小时(或者如果您将系统时间更改为夏令时可能是 26 小时)则中止,否则继续并更新运行文件的时间戳。

于 2013-10-01T16:24:49.933 回答
0

如果您查看作业执行天数,您会发现它还取决于您使用的月份(例如)如果您尝试每 5 天执行一次,那么作业将开始并且它会尝试将月份分成相等halfs(不是),因此它不会按预期工作,请参阅单击此处进行检查,因此必须使用withIntervalInHours(intervalInHours)来使我们的案例正常工作

于 2014-07-30T09:52:04.160 回答