我遇到了一个情况,我认为每55分钟运行一个cron作业实际上是在小时的最后一小时和之后55分钟运行的。实际上,这不是一个cron工作,但它是一个使用cron语法的PHP scheduling application。克朗“步骤”如何工作?
当我要求此应用程序每55分钟计划一次作业时,它会创建一个类似于以下内容的crontab行。
*/55 * * * *
此行的crontab结束不运行作业每55分钟。相反,工作时间在55分钟后,并在一小时的时间。我不希望这样。我已经运行这个虽然cron tester,并验证不良行为是正确的cron行为。
这使我查找/
实际上的含义。当我看到cron manual时,我得知斜线表示“步骤”,但手册本身有点模糊,因此这意味着
步长值可以与范围结合使用。在“
<number>
”范围之后指定在该范围内跳过数字值。例如,可以在小时字段中使用“0-23/2
”以指定每隔一小时执行一次命令(V7标准中的替代方法是“0,2,4,6,8,10,12,14,16,18,20,22"
”)。星号后也允许执行步骤,因此如果您想说“每两小时”,只要使用‘*/2
’。
本手册的描述(‘通过的范围内指定数字的值的跳跃’)是一点点模糊,并且‘每两小时’的例子是有点误导(这是大概是什么导致了应用程序的bug)
于是,两个问题:
unix cron程序如何使用“步骤”信息(斜线后的数字)来决定是否应该跳过运行作业? (模块化的部门?如果是这样,在什么情况下决定一个“真正的”运行,哪些决定没有?或者是别的什么?)
是否可以配置一个unix cron作业来运行每个“ N“分钟?
@shellter我不想在一小时后只运行55次,我想每55分钟运行一次。时间过后在55点跑,每小时一次。更重要的是,我想知道“步骤”功能实际上是如何工作的,以及是否可以说“每N分钟”,而不管N是什么。 – 2014-12-10 23:16:15
对于反对/接近 - 这个问题是关于cron的调度逻辑是如何被编程的**,以支持使用cron逻辑的PHP程序包编写软件。这似乎很主题 – 2014-12-11 17:18:44