如何从 0 分钟以外的时间开始每 5 分钟运行一次 cron 作业?

Posted

技术标签:

【中文标题】如何从 0 分钟以外的时间开始每 5 分钟运行一次 cron 作业?【英文标题】:How can I run a cron job every 5 minutes starting from a time other than 0 minutes? 【发布时间】:2013-04-12 06:03:07 【问题描述】:

我想让脚本每 5 分钟运行一次,假设从 13:02 开始,这样我可以每 5 分钟运行另一个脚本,但从 13:04 开始,所以第二个脚本在第一个脚本开始后两分钟运行工作。我怎样才能做到这一点?

【问题讨论】:

【参考方案1】:

语法 1

*/5+2 * * * * 1st-script
*/5+4 * * * * 2nd-script

为了将来的参考,请在线查看Cron Job Generator。

语法 2

由于有几份报告称+ 语法在 Ubuntu 14.04 上不起作用,这里有一个变体:

2-59/5 * * * * 1st-script
4-59/5 * * * * 2nd-script

这将导致第一个脚本每 5 分钟运行一次,从每小时开始时的 2 分钟偏移量开始,第二个脚本的行为相同,偏移量为 4 分钟。

【讨论】:

@xtian,请查看我添加的替代解决方案,如果它按预期工作,请告诉我。 我的 cPanel(11.52 版)似乎不接受这些语法。我已经解决了 1,6,11,16,21,26,31,36,41,46,51,56 * * * * php ... Ubuntu 16.04 中的相同问题。原始答案无效,但更新版本有效 RHEL 6.10 中的 cron 也不喜欢 */5+2,但 2-59/5 工作起来就像一个冠军。 Firebase 预定功能也需要带有2-59/5 的更新版本。 tnx【参考方案2】:

*/5 * * * * sleep 120; ( first_script.sh & ) ; sleep 120 ; second_script.sh

这种方法的好处在于,您可以让 crontab 在分钟边界以外的时间(例如一小时后 30 秒)开始执行任务

【讨论】:

【参考方案3】:
*/5+1 * * * * first_script.sh

每五分钟运行一次,但偏移一分钟

【讨论】:

【参考方案4】:

我需要类似的东西 - 从一小时的第三分钟开始每 5 分钟执行一次脚本。我对上述解决方案表示怀疑(因为网站 crontab.guru 让我相信语法无效),所以我的同事告诉我直接像这样指定分钟数:

3,8,13,18,23,28,33,38,43,48,53,58 * * * *

它的具体会议记录列表。

【讨论】:

以上是关于如何从 0 分钟以外的时间开始每 5 分钟运行一次 cron 作业?的主要内容,如果未能解决你的问题,请参考以下文章

每分钟运行一次 cron 作业,但从特定时间开始

jenkins cron:每 3 分钟运行一次,从 1 开始

cron表达式怎么实现“00:15-23:57每5分钟运行一次”?

仅在特定时间每分钟运行一次 cron 作业?

从0点开始,每10分钟输出1次时间,直到24点,shell 脚本如何写?

为什么这个cron作业每分钟运行一次?