cron 中的“每两分钟”是什么意思?

3 cron

我在 cron 中设置了两个脚本,每两分钟运行一次:*/2-- 问题是,它们不合时宜。一个在 1、3、5、7、9 分钟等运行,另一个在 0、2、4、6、8 分钟运行。这不是关键任务问题,但意味着我有两个状态报告,一个与另一个相比有点陈旧。

cron 究竟做了什么?按 crontab 文档顺序运行第一个,等到它完成再运行第二个?

有什么办法可以同时或尽可能接近运行吗?

小智 10

作业将尽可能接近给定时间运行,但可能会稍晚运行。正如 Chris 建议的那样,最好的办法可能是创建一个小的 shell 脚本并安排它:

#!/bin/sh
/path/to/job/one &
/path/to/job/two &
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我在后台启动它们以确保它们同时或几乎同时运行,但根据您的系统、您的要求等,您必须对其进行调整以满足您的需要。

另请注意,在某些系统上 */2实际上并不意味着只能被 2 整除,而是以等于 2 的步长重复出现。因此,如果作业开始时作业时间与 1 匹配,则它可能会每隔一分钟,正如你所看到的,而不是每一个。你可以尝试这样的事情:

00-58/2
Run Code Online (Sandbox Code Playgroud)

强制作业仅在偶数实例上启动,但是否以及如何工作实际上取决于您的系统、您的 cron 守护程序版本等。要获得更详细的帮助,您必须提供此信息:)