具有开始和结束时间的 Cron 模式

Cron pattern with start and end time with minute

我想要一个作业 a 从 10:30 AM8:30 PM15 mins 执行一次。

我试过了30/15 10-20 * * *。但它忽略了时间 11:00 AM11:15 AM12:00 PM12:15 PM1:00 PM1:15 PM

我想知道上述表达式的正确 cron 字符串。

# Run command every fifteen minutes between 10:30 and 20:30.
0,15,30,45 11-19 * * * …command…
30,45      10    * * * …command…
0,15,30    20    * * * …command…

第一行处理从11:00到19:45的整个时间。第二行处理 10:30 和 10:45。第三行处理 20:00、20:15、20:30(假设您也希望它在 20:30 处 运行 — 如果您不这样做,修复是显而易见的) .

它可能不漂亮,但可以完成工作。只要确保 …command… 序列足够简单,重复很明显即可。

您可以将 cron 中第一行的第一个组件替换为 0/15。您可能对第二个使用 30/15,但它似乎并不比所写的更清楚。我不确定是否有替换另一条线的好方法。

另一种可能性是重构它,以便指定每个刻钟的小时范围:

0  11-20 * * * …command…
15 11-20 * * * …command…
30 10-20 * * * …command…
45 10-19 * * * …command…

您可以选择组合前两个。