每N分钟执行Cron作业加上偏移


251

*/20 * * * *

确保它每20分钟运行一次,我想每20分钟运行一次任务,从每小时的5点开始,Cron可以吗?可不可能是:

5/20 * * * *


10
由于巴比伦人,谁决定了我们的时间系统应该由1,2,3,4,5和6整除
arivero

3
如果它可以被2和3整除,也可以被6整除
Ziofil

Answers:


514

要从每小时的5点开始每20分钟运行一次任务,请尝试以下操作:

 5-59/20 * * * *

说明

一个*在微小场是一样的0-59/1,其中0-59范围1步骤。该命令将在范围(0)的第一分钟开始运行,然后在所有与第一步(1)相距甚远(到最后)的相继分钟中运行。

这就是为什么*/20 * * * *将在0分钟,20分钟之后和40分钟之后运行-与每20分钟相同。但是,*/25 * * * *它将在0分钟,25分钟之后和50分钟之后运行-这与每25分钟不同。这就是为什么通常需要在分钟字段中使用一个步进值,将其平均分为60。

因此,要偏移开始时间,请明确指定范围,并将第一个值设置为偏移量。

例子

5-59/20 * * * * 将在5分钟后,25分钟后和45分钟后运行。

10-59/25 * * * * 将在之后的10分钟和35分钟后运行。

1-59/2 * * * * 将每隔一分钟运行一次。


3
完美地运作。您是怎么发现的?你能指出我对文档的看法吗?谢谢。
AJP 2013年

12
各种各样的Google搜索使我想到了“ 服务器故障”答案。这个错误使我感到非常困惑,特别是因为其他结果表明分钟模数步长应该等于零。我终于找到了这个手册页,给了我答案。结果,我能够对已经修复的服务器故障答案发表评论。我不记得我用来查找IBM页面的实际搜索词。
toxalot

3
感谢和@toxalot的出色工作,我希望我们能为您授予“不懈调查者”徽章!:P
AJP

5
大声笑。我需要每10分钟执行一次工作(偏移5),并且确实不想使用逗号分隔的列表,因此我下定决心要找到答案。
toxalot

2
CPanel似乎并不喜欢这样:(
Robert Went's

53

当然!

5,25,45 * * * * /your/cron

2
谢谢。我最终做了这个,希望可以有一个更优雅的解决方案。
AJP

13
有时,简单的解决方案会更好,因为它易于阅读和理解。我喜欢知道这5-59/20是可能的,但5,25,45优点是可以立即很清楚地知道这样做的效果。
thomasrutter

2
仅当您的脚步足够大时
Tebe

3
这是一个更好的例子。了解工作何时开始需要0个认知负担。
迪伦·皮尔斯

10

你可以试试: */5 * * * * sleep N; your job


4
我认为这没有问题-实际上,这与certbot的cron作业如何实现随机偏移量非常相似,这有助于保持服务器负载平衡。当然不值得所有那些
反对票

6
这让我想知道如何随机睡眠几秒钟。 sleep `shuf -i 1-100 -n 1`绝招。
Laizer

该死的,@ Laizer,你让我再次学到了东西!(谢谢!)
UncaAlby
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.