小时范围超过午夜的 crontab 条目

小时范围超过午夜的 crontab 条目

这是有效的 crontab 时间规范吗?执行预期的操作:

0 22-4 * * *

或者是否有必要做类似的事情

0 22,23,0,1,2,3,4 * * *

答案1

我在午夜运行 cronjobs 时遇到问题。我最终为所涉及的脚本添加了两个几乎相同的条目。

* 22-00 * * * /myscript
* 00-05 * * * /myscript

这似乎成功了。
由于使用 22-05,我遇到了 cron 失败的情况,通过排除过程想出了这个解决方案。

答案2

周围有各种各样的 cron 守护进程,除非您确切地告诉您正在使用哪一个(在这种极端情况下列表的处理很可能从一个版本更改为下一个版本),否则无法找到答案。最好的选择是遵循你的明确清单。如果某些实现将您的环绕视为一种奇怪的表达方式,我不会太惊讶4-22......

你们当地的文档是否提到过这种情况?也许有两个列表是合法的,例如22-23,0-4

答案3

我从未尝试过使用这样的范围,我不确定它是否有效。所以我的第一个建议是测试它并看看会发生什么 - 尽管可能使用只执行日志条目或其他无害的脚本。

其次,对于 ATT 和 BSD cron,您不能让范围和列表共存,因此您要么必须单独列出每小时,要么有两行,一行包含范围,一行包含列表。

答案4

检查 cron 的有用工具:

https://crontab.guru/

使用 cron* 22-4 * * *不会起作用,因为 cron 在“当天”起作用。

您可以尝试它的不同变体,但我认为最精确的是这个:

在此输入图像描述

相关内容