如何 运行 每 5 小时执行一次 cron 作业(在 Linux 上)

How to run a cron job every 5 hours (on Linux)

我想 运行 每 5 小时执行一次 cronjob。

现在11:54pm..

查了crontab大师,这个0 */5 * * *好像是对的,但是网站也提到了类似的东西

next at 2022-01-07 00:00:00

我想知道为什么?这是否意味着无论在午夜 (00:00:00) 发生什么,它 运行 都是脚本?没有意义。

*/5语法的意思是“每5个单位,从0开始”。因此,如果您在小时位置使用它,它将匹配小时 0、5、10、15、20。

我假设您真正想要的是严格的 5 小时间隔。因此,在 20 小时后,您希望下一个 运行 在 20 + 5 小时,所以在凌晨 1 点而不是午夜。如果那是正确的,那么没有一种简单的方法可以让 cron 像那样工作。它可以对 24 的所有除数进行偶数间隔:每 2 小时、每 3 小时、每 4 小时、每 6 小时、每 12 小时。

要获得 5 小时的间隔,一种可能的解决方法是

  • 将 cron 作业安排为每小时 运行
  • 在 cron 作业 运行 的脚本开始处,添加额外的逻辑 检查它是否应该 运行 这个小时 。例如,您可以获取当前时间,并计算自纪元以来的小时数。并且提前退出,除非计算出的数字能被5整除。