如何在Linux中设置每10秒运行一次CRON作业


How to setup CRON job to run every 10 seconds in Linux?

我需要从开始时间开始每10秒运行一个CRON作业。

在Linux中,如何从每10秒开始运行一个CRON作业?

我正试图解决如下:当我在04:28:34提出请求(或开始)时,它应该在04:28:44开始,而不是在4:28:40

这就是我所做的

# m h  dom mon dow   command
*/10 * * * * /usr/bin/wget http://api.us/application/

我做错了什么?为什么这不是触发wget每10秒?

详细说明Sougata Bose的回答,我认为OP希望从开始时间开始每10秒运行一个命令;第一分钟后不超过10秒,以后每分钟一次。

cron只有1分钟的分辨率(我认为还有其他工具可能有更好的分辨率,但它们不是unix的标准)。

因此,要解决您的问题,您需要60秒/10秒= 6个cron作业,每个作业都有一个睡眠。

。运行crontab -e并将以下行添加到您选择的编辑器中:

* * * * * ( /usr/bin/wget http://api.us/application/ )  
* * * * * ( sleep 10 ; /usr/bin/wget http://api.us/application/ )  
* * * * * ( sleep 20 ; /usr/bin/wget http://api.us/application/ )  
* * * * * ( sleep 30 ; /usr/bin/wget http://api.us/application/ )  
* * * * * ( sleep 40 ; /usr/bin/wget http://api.us/application/ )  
* * * * * ( sleep 50 ; /usr/bin/wget http://api.us/application/ )  

另一个选择是使用crontab -e编辑crontab并写入:

* * * * * for i in {1..6}; do /usr/bin/wget http://api.us/application/ & sleep 10; done

*/10 * * * *将每10分钟运行一次。
*/10 * * * * *将每10秒运行一次。

您可以查看cron编辑器以获得更多选项。

在seconds字段中使用逗号也可以:

0,10,20,30,40,50 * * * * *

watch代替;例如:

watch -n10 -x your_command

如果某些东西应该每10秒运行一次,那么它不一定是cron job。它可以是一个带有sleep的无尽循环的脚本,比如:

while true
do
  # or whatever command you need to run
  rm -rf /var/www/some-directory
  sleep 10
done

并使用

运行它
nohup bash my-endless-script.sh 

,它将在后台运行它,如果你关闭终端,它也会继续运行。

可以使用kill命令终止运行。