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

时间:2015-05-18 05:45:31

标签: php linux apache cron

我需要从开始时间起每隔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秒钟就会工作一次?

7 个答案:

答案 0 :(得分:32)

详细说明Sougata Bose的答案,我认为OP希望从开始时间开始每10秒运行一次命令;在第一分钟之后和之后的每一分钟都不是10秒。

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

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

e.g。运行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/ )  

答案 1 :(得分:14)

另一种选择是使用crontab -e编辑crontab并输入:

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

答案 2 :(得分:5)

您在分钟内指定了* / 10。 Cron只允许至少一分钟。你可以试试这个 -

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

将在每10秒睡眠时执行一次。

答案 3 :(得分:2)

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

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

答案 4 :(得分:0)

改为使用watch;例如:

watch -n10 -x your_command

答案 5 :(得分:0)

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

您可以检出cron editor以获得更多选项。

答案 6 :(得分:0)

如果某事应该每 10 秒运行一次,它就不必是 cron 作业。它可以是一个无限循环的脚本,里面有 sleep 像:

SELECT *
    FROM "table1" where review_time_datetime  >'2021-06-14 00:00'
    and match_time_datetime < '2021-06-14 24:00'

并运行它

filter_query = table1.objects.filter(review_time_datetime, match_time_datetime)
    

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

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