繁体   English   中英

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

[英]How to setup CRON job to run every 10 seconds in Linux?

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

为了详细说明 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 编辑器以获取更多选项。

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

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

它将每隔10秒执行一次睡眠。

改用watch 例如:

watch -n10 -x your_command

如果某事应该每 10 秒运行一次,它就不必是 cron 作业。 它可以是一个无限循环的脚本,里面有 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 命令终止运行。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM