我需要从开始时间开始每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命令终止运行。