我希望从15 mins
到10:30 AM
开始执行每个8:30 PM
的工作。
我试过了30/15 10-20 * * *
。但它忽略了时间11:00 AM
,11:15 AM
,12:00 PM
,12:15 PM
,1:00 PM
,1:15 PM
等。
我想知道上面表达式的正确cron字符串。
答案 0 :(得分:2)
# 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…
序列足够简单,重复是显而易见的。
您可以使用0/15
中的cron
替换第一行的第一个组件。您可以使用30/15
作为第二个,但它似乎没有比编写的内容更清晰。我不确定是否有替换另一条线路的好方法。
另一种可能性是重构它,以便指定每个季度小时的小时范围:
0 11-20 * * * …command…
15 11-20 * * * …command…
30 10-20 * * * …command…
45 10-19 * * * …command…
您可以选择合并前两个。