ループパラメータを使用してcronジョブを実行するには?

ループパラメータを使用してcronジョブを実行するには?

5分ごとにbashスクリプトを実行し、期間に基づいて事前定義されたパラメータを使用したいと思います。

たとえば、1、2、5、10、15、50、15、10、5、2をパラメータとして使用し、ループを再開したいとします。

理想的には、パラメータは簡単に編集し、いくつかのパラメータを追加または削除できるファイルまたはスクリプトに保存されます。

どうすればいいですか?


スクリプト、配列、および.を使用してこれを実行できますが、while [[ true ]]cronを使用して実行できるかどうか疑問に思います。

答え1

おそらくこれを達成する最も効率的で簡単な方法の1つは、パラメータを使用するのではなく、スクリプトにマジックナンバーループトレースを処理させることです。このような:

#!/bin/bash
sequence=(1 2 5 10 15 50 15 10 5 2)
if [[ -r /var/tmp/myjob.seq ]]; then
   seq="$(cat /var/tmp/myjob.seq)"
   if [[ $seq -lt $((${#sequence[@]}-1)) ]]; then
       nextseq=$(($seq+1))
   else
       nextseq=0
   fi
   echo $nextseq > /var/tmp/myjob.seq
else
   seq=0
   echo 1 > /var/tmp/myjob.seq
fi
magicnumber=${sequence[$seq]}

その後、後でスクリプトを参照し、$magicnumber必要なクローンスケジュールを使用できます。

関連情報