如何在 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/ )  

改用watch;例如:

watch -n10 -x your_command

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

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

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

您可以查看 cron editor 以获得更多选项。

如果某些东西应该每 10 秒 运行 它不必是 cron 作业。它可以是一个无限循环的脚本,里面有睡眠,比如:

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 * * * * *