我如何安排一个在Linux中每10秒运行一次的cron作业?

我知道如何做每一分钟,但每10秒钟怎么样?

你不能每十秒钟安排一次工作,但是我想你可以安排工作每分钟运行一次,并以10秒的间隔睡眠。 这可以根据您的命令在10秒的时间间隔到期之前完成,否则在下一个命令运行时会重叠。 这感觉像一个不稳定的解决scheme,但如果你能保证脚本的主要命令的执行很短,它将工作。

#!/bin/bash i=0 while [ $i -lt 6 ]; do /run/your/command & sleep 10 i=$(( i + 1 )) done 

上周我有类似的任务。 我的解决scheme是将标准cron条目乘以所需的频率。 我的crontab看起来像:

 * * * * * /usr/local/bin/php /var/www/myscript.php * * * * * sleep 10; /usr/local/bin/php /var/www/myscript.php * * * * * sleep 20; /usr/local/bin/php /var/www/myscript.php * * * * * sleep 30; /usr/local/bin/php /var/www/myscript.php * * * * * sleep 40; /usr/local/bin/php /var/www/myscript.php * * * * * sleep 50; /usr/local/bin/php /var/www/myscript.php 

如果你想检查myscript.php的结果,例如debugging,只需追加

 &> /tmp/myscipt.log 

到上面的crontab中的每一行。 然后stderr和stdout被redirect到日志文件。

我会使用Monit并将循环时间设置为10秒。

我使用某些需要以15秒间隔运行的脚本来执行此操作。

请参阅: 如何执行zfs池的增量/连续备份?

克朗只允许至less一分钟。 你可以试试这个 –

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