ChatGPT解决这个技术问题 Extra ChatGPT

每 N 分钟运行一次 Cron 作业加上偏移量

*/20 * * * *

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

5/20 * * * * ?

感谢巴比伦人,他们决定我们的时间系统应该精确地除以 1、2、3、4、5 和 6。
如果它可以被 2 和 3 整除,它也可以被 6 整除

t
toxalot

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

 5-59/20 * * * *

解释

分钟字段中的 *0-59/1 相同,其中 0-59范围,而 1步骤。该命令将在 范围 (0) 内的第一分钟运行,然后在与第一分钟相距 step (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 搜索使我找到了this Server Fault answer。它有一个让我很困惑的错误,特别是因为其他结果表明分钟模数步长应该等于零。我终于找到了给我答案的this manual page。结果,我能够评论现在已修复的服务器故障答案。我不记得用于查找 IBM 页面的实际搜索词。
谢谢@toxalot,做得很好,我希望我们能授予您“不知疲倦的调查员”徽章! :P
哈哈。我需要每 10 分钟运行一次作业(偏移 5)并且真的不想使用逗号分隔的列表,所以我决心找到答案。
不幸的是,CPanel 似乎不喜欢这个:(
f
fedorqui

当然!

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

谢谢。我最终这样做了,希望可能有一个更优雅的解决方案。
有时简单的解决方案更好,因为它易于阅读和理解。我喜欢知道 5-59/20 是可能的,但 5,25,45 的优点是它立即非常清楚它的作用。
只有当你的步伐足够大
这是一个更好的例子。了解工作何时开始需要 0 认知负荷。
D
Dan Is Fiddling By Firelight

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


我认为这没有任何问题 - 事实上,这与 certbot 的 cron 作业如何实现有助于保持服务器负载平衡的随机偏移非常相似。当然不值得所有这些反对票
这让我想知道如何随机睡几秒。 sleep `shuf -i 1-100 -n 1` 可以解决问题。
该死,@Laizer 你让我又学到了一些东西! (谢谢你!)