我需要从开始时间起每隔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秒钟就会工作一次?
答案 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 命令终止运行。