我知道如何做每一分钟,但每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到日志文件。
看看这个讨论解决scheme的论坛post:
我会使用Monit并将循环时间设置为10秒。
我使用某些需要以15秒间隔运行的脚本来执行此操作。
请参阅: 如何执行zfs池的增量/连续备份?
克朗只允许至less一分钟。 你可以试试这个 –
* * * * * ( sleep 10 ; /usr/bin/wget http://api.us/application/)