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

2022-08-30 08:54:11

我需要从开始时间开始每 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/

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


答案 1

为了详细说明Sugata 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/ )  

答案 2

另一种选择是编辑您的 crontab 并编写:crontab -e

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

推荐