以下cron表达是否意味着每45分钟?

我愿意每45分钟运行一次剧本(不是每小时45分钟)

例如10:00,10:45,11:30,12:15等.

*/45 * * * *

我不知道这是正确的表达.

我怀疑(编辑:我现在很确定),它不会做你想要的:字段是分开的,* / 45分钟是不超过0,45.如果* / 45不做这个工作,我将使用以下三个条目:

0,45  0-23/3 * * *
30    1-23/3 * * *
15    2-23/3 * * *

如果您查看vixie cron源中的entry.c文件,您会注意到每个条目的每个字段都由get_list解析,并表示为该字段的允许值的位图.这几乎排除了任何“聪明”的解释,因为* / 45和0,45的区别在这个阶段丢失了…但是有一个MIN_STAR标志,在*(*)的存在下设置(包括* / 45).所以我们来看看cron.c,它是MIN_STAR被检查的一个地方,以了解它与我们的问题无关.现在我们知道* / 45是“每小时每45分钟一次”:0:00,0:45,1:00,1:45等等.

这里有两个答案自信地说明了相反的情况,引用了手册中的一个不幸的段落:

Steps are also permitted after an asterisk, so if you want to say
“every two hours”, just use “*/2”

我们很幸运有一个24小时的时间,包含了几个小时,“每两个小时从0点,每天”和“每两个小时一般”是不可区分的.太糟糕了,手册没有足够的文件记录非平凡的案例,造成的印象是* * / 22意味着每22个小时.它不是.有一个步骤的星星只是使用它的领域中的值列表的简写;它不与其他字段进行交互.

翻译自:https://stackoverflow.com/questions/14517795/is-the-following-cron-expression-means-every-45-minutes

转载注明原文:以下cron表达是否意味着每45分钟?