2

30秒ごとにcronジョブを実行したいのですが、cronでは1分に1回以上の頻度でジョブをスケジュールすることはできません。

30秒ごとにcronジョブを実行するための最良の方法はどれですか?

4

5 に答える 5

3

スライディング ウィンドウの問題を回避しながらこれを行う方法を次に示します。メインのスクリプト (ここでは main.sh) とスリープ スクリプト (sleep30.sh) の 2 つのスクリプトを作成します。

main.sh:

#!/bin/bash
date >>/tmp/main.out

sleep30.sh:

#!/bin/bash
sleep 30
. $1

crontab:

* * * * * /pathtoscripts/sleep30.sh /pathtoscripts/main.sh
* * * * * /pathtoscripts/main.sh

エレガントではありませんが、うまくいくはずです。

于 2012-11-26T18:46:36.540 に答える
1

cron で使用できる最短の時間間隔は 1 分です。bash スクリプトをスリープ状態にすることもできますが、おそらくそれが最善の方法です。

于 2012-11-26T18:23:28.180 に答える
0

簡単に言えば、1 分未満で cron ジョブをスケジュールすることはできないということです。使用できますsleep 30が、スライディング ウィンドウの問題が発生します (タスクの間隔は 30 秒 + タスクの実行時間になります)。タスクをwhile trueループ内に配置し、少なくとも 30 秒が経過した場合は各反復をチェックし、経過した場合はタスクを再度実行し、経過していない場合はタスクを再実行することができます。sleep 1

于 2012-11-26T18:35:05.250 に答える