如何从 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 作业?的主要内容,如果未能解决你的问题,请参考以下文章
jenkins cron:每 3 分钟运行一次,从 1 开始
cron表达式怎么实现“00:15-23:57每5分钟运行一次”?