解決策 1:
私は先週、同様の仕事をしました。私の解決策は、標準の 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 の結果を確認したい場合。デバッグの場合は、
を追加するだけです&> /tmp/myscipt.log
上記のcrontabの各行に。次に、stderr と stdout がログ ファイルにリダイレクトされます。
解決策 2:
10 秒ごとにジョブをスケジュールすることはできませんが、ジョブを 1 分ごとに実行し、10 秒間隔でループしてスリープするようにスケジュールすることはできると思います。これは、10 秒の間隔が満了する前にコマンドが完了することを前提としています。そうしないと、次のコマンドの実行時にオーバーラップが発生します。これは不安定な解決策のように思えますが、スクリプトのメイン コマンドの非常に短い実行を保証できれば、うまくいくでしょう。
#!/bin/bash
i=0
while [ $i -lt 6 ]; do
/run/your/command &
sleep 10
i=$(( i + 1 ))
done