dev*_*234 25 php linux apache cron
我需要CRON
从开始时间开始每隔10秒就开一份工作.
在Linux中如何CRON
从开始工作起每隔10秒就运行一次作业?
我想按照以下方式做 -
当我在04:28:34提出请求(或开始)它应该从04:28:44开始而不是在4:28:40
这就是我所做的,我正在努力,
# m h dom mon dow command
*/10 * * * * /usr/bin/wget http://api.us/application/
Run Code Online (Sandbox Code Playgroud)
我在这里做了什么错误,不是每10秒钟就会工作一次?
Rod*_*ent 49
为了详细说明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/ )
Run Code Online (Sandbox Code Playgroud)
小智 24
另一种选择是编辑您的 crontabcrontab -e
并编写:
* * * * * for i in {1..6}; do /usr/bin/wget http://api.us/application/ & sleep 10; done
Run Code Online (Sandbox Code Playgroud)
jav*_*301 14
在秒字段中使用逗号也有效:
0,10,20,30,40,50 * * * * *
Run Code Online (Sandbox Code Playgroud)
您已在分钟中指定了*/10.Cron只允许至少一分钟.你可以尝试这个 -
* * * * * ( sleep 10 ; /usr/bin/wget http://api.us/application/)
Run Code Online (Sandbox Code Playgroud)
哪个会在睡眠时每10秒执行一次.
如果某件事应该每 10 秒运行一次,那么它不一定是 cron 作业。它可以是一个无限循环的脚本,其中包含 sleep,如下所示:
while true
do
# or whatever command you need to run
rm -rf /var/www/some-directory
sleep 10
done
Run Code Online (Sandbox Code Playgroud)
并运行它
nohup bash my-endless-script.sh
Run Code Online (Sandbox Code Playgroud)
这将在后台运行它,并且如果您关闭终端也会继续。
您可以使用kill命令终止运行。