34

我试图让一个简单的 crontab 作业每 15 分钟运行一次,但在决定如何格式化时间时遇到了麻烦。

我一直在放下的是以下内容:

15 * * * * ------------------------

我很确定这只是每小时的前 15 分钟。

我认为 crontab 允许用户指定运行的确切时间,即:

0, 15,30,45 * * * * -------------------------

但是,如果我想从启动 crontab 的那一刻起每 15 分钟运行一次(可能不一定是可被 15 整除的值),我将如何进行格式化/这可能吗?

4

3 回答 3

55

Crontab 不记得您“开始”的时间(大概是您执行crontab -eorcrontab filename命令的时间)。

如果您想从任意时间开始每 15 分钟运行一次作业,则必须指定该时间。这:

7-59/15 * * * * command

将在每小时后的 7、22、37 和 52 分钟运行。假设您正在运行 Vixie cron,这是最常见的实现。为了更好的便携性,您可以使用:

7,22,37,52 * * * * command

请记住,前 5 个字段中的任何一个都不能有空格;0, 15,30,45,正如你在你的问题中所说的那样,是无效的。

于 2013-02-22T21:58:01.737 回答
43

您可以像这样格式化 crontab,让它每 15 分钟运行一次。

*/15 * * * * [path/to/script]

于 2013-02-22T21:35:25.893 回答
1

0,15,30,4515 分钟不正确。

更好更简单的方法是*/15 * * * *15 分钟。

5 minutes
*/5 * * * *

15 minutes
*/15 * * * *

30 minutes
*/30 * * * *

60 minutes
0 * * * *

1 day
0 0 * * *
于 2020-10-27T11:12:09.200 回答