如何每72分钟做一次cron工作

时间:2009-04-14 00:31:39

标签: cron scheduled-tasks hour

如何每72分钟运行一次cron作业?或者有些不那么漂亮?

7 个答案:

答案 0 :(得分:36)

由于cron基于时间而不是基于时间间隔运行作业,因此没有简单明了的方法。但是,虽然它有点像黑客,但您可以在crontab中设置多行,直到找到共同点。由于您希望每72分钟运行一次作业,因此必须在以下时间执行:

  • 00:00
  • 1时12
  • 2时24
  • 3时36
  • 4时48
  • 06:00
  • 7时12
  • ...

如您所见,该模式每6个小时重复5个工作。因此,您的crontab中将有5行:

0  0,6,12,18  * * * command
12 1,7,13,19  * * * command
24 2,8,14,20  * * * command
36 3,9,15,21  * * * command
48 4,10,16,22 * * * command

另一个选择当然是创建一个包装守护程序或shell脚本,它执行并休眠所需的时间直到停止。

答案 1 :(得分:25)

使用at(man at)。让您的应用程序或启动脚本在将来72分钟计算启动时间,并安排自己在开始工作之前再次运行
在Windows XP和Vista上也可用。

这是gnu / linux的一个例子:at -f command.sh现在+ 72分钟

答案 2 :(得分:4)

你总是可以采取每分钟触发cron的方法,并且如果它的运行时间超过72分钟,你的脚本会立即退出。

答案 3 :(得分:3)

您不能直接从cron / crontab执行此操作。

Cron作业按特定时间表运行,而不是按特定时间间隔运行。

另一种选择是通过在午夜,1:12,2:24,3:36,...运行,制定一个近似于“每72分钟”的时间表,并将其拉伸至近似于午夜。您的crontab文件可以指定所有这些时间来执行。

另一种选择是让一个单独的应用程序处理调度,并激活你的应用程序。

答案 4 :(得分:2)

你需要为此设置20个任务 - 即在00:00设置一个,在01:12设置下一个,在02:24设置下一个等等。

20次迭代需要一整天。

不幸的是,这是唯一的方法,因为cron任务是事先在固定的时间表中设置而不是运行,比如“在X分钟后执行最后一个任务”。

答案 5 :(得分:2)

不要使用cron ......

#!/bin/sh
while [ true ] 
do
     sleep 4320
     echo "Put your program here" &
done

答案 6 :(得分:-3)

呃我知道这是姗姗来迟的,但我正在研究一些调度问题并看到了这个问题。

只需在你的crontab中执行此操作

* / 72 * * * * /home/script.sh