每 10 秒运行一次作业,而另一项作业每 1 分钟运行一次

每 10 秒运行一次作业,而另一项作业每 1 分钟运行一次

我有一个作业应该每 10 秒运行一次,然后我还有另一个作业应该每 60 秒运行一次。然而,似乎应该每 10 秒运行一次的作业只运行了每 60 秒运行一次...所以从技术上讲它每分钟只运行一次。

它们的顺序如下:

* * * * * ( sleep 10 ; /bin/bash -l -c 'ruby /root/script.rb')
0 * * * * /bin/bash -l -c 'ruby /root/another_script.rb'

我以为如果需要的话,这些会并行运行。显然我一定做错了什么。

任何帮助将不胜感激。

答案1

这些是 cron 字段(来自man -i 5 crontab):

field          allowed values
-----          --------------
minute         0-59
hour           0-23
day of month   1-31
month          1-12 (or names, see below)
day of week    0-7 (0 or 7 is Sun, or use names)

如您所见,没有“秒”字段。要每 10 秒运行一次作业,您必须在脚本中使用循环。一种选择是每分钟从 cron 运行脚本,并让脚本在 0、10、20、30、40 和 50 秒运行。

以下是可用于该脚本的模板:

for i in $(seq 0 5); do echo $i; sleep 10; done

相关内容