每N分钟加偏移运行Cron作业

AJP*_*AJP 228 cron

*/20 * * * *

确保它每20分钟运行一次,我希望每隔20分钟运行一次任务,从小时开始5点开始,这可能与Cron有关吗?可不可能是:

5/20 * * * *

tox*_*lot 463

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

 5-59/20 * * * *
Run Code Online (Sandbox Code Playgroud)

说明

一个*在微小场是一样的0-59/1,其中0-59范围1步骤.该命令将在范围(0)中的第一分钟运行,然后在距离第一步(1)远离的所有连续分钟处运行,直到最后一分钟(59).

这就是为什么*/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 * * * * 将每隔一分钟运行一次.

  • 各种Google搜索引导我[此服务器故障回答](http://serverfault.com/a/429397/181709).它有一个让我非常困惑的错误,特别是因为其他结果表明*分钟模数步长应该等于零*.我终于找到了[本手册页](http://publib.boulder.ibm.com/infocenter/db2luw/v9r5/index.jsp?topic=%2Fcom.ibm.db2.luw.sql.rtn.doc%2Fdoc% 2Fc0054381.html)给了我答案.结果,我能够评论现在已修复的服务器故障答案.我不记得我用来查找IBM页面的实际搜索词. (10认同)
  • 大声笑.我需要每10分钟运行一次工作(偏移5)并且真的不想使用逗号分隔列表,所以我决心找到答案. (4认同)
  • 这很有效.你是怎么发现的?你能指点我的文件吗?谢谢. (3认同)
  • 感谢和@toxalot的出色工作,我希望我们能授予您“不懈调查者”徽章!:P (3认同)
  • 不幸的是,CPanel 似乎不喜欢这个 :( (2认同)

fed*_*qui 47

当然!

5,25,45 * * * * /your/cron
Run Code Online (Sandbox Code Playgroud)

  • 有时简单的解决方案更好,因为它易于阅读和理解.我喜欢知道`5-59/20`是可能的,但是`5,25,45`的优势在于它立即非常清楚它的作用. (12认同)
  • 谢谢.我最终做到了这一点,希望可能有一个更优雅的解决方案. (2认同)
  • 只有你的步伐足够大 (2认同)
  • 这是一个更好的例子。了解工作何时开始需要0个认知负担。 (2认同)

小智 7

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

  • 这让我想知道如何随机睡眠几秒钟。`sleep \`shuf -i 1-100 -n 1 \``可以解决问题。 (3认同)
  • 我认为这没错-实际上,这与certbot的cron作业如何实现随机偏移量非常相似,这有助于保持服务器负载平衡。肯定不值得所有那些贬低 (2认同)