cronジョブを使用して、bashスクリプトのリストを反復処理したいと思います。つまり、2時間ごとに別のbashスクリプトを開始します。私のアイデアは、cronjobスクリプトがこの環境変数を読み取り、対応するスクリプトを呼び出し、環境変数をインクリメントするたびに、新しい環境変数を設定することでした。
私はこれを試してみましたが、test.sh
端末から呼び出すと動作します。
# test.sh
JOB_COUNTER=$((JOB_COUNTER + 1))
echo $JOB_COUNTER
export JOB_COUNTER=$JOB_COUNTER
私は内から呼び出す置く場合はcrontab
、$JOB_COUNTER
(私はそれをチェックインクリメントを取得していないようですecho $JOB_COUNTER
)
コンテキスト:すべてのジョブを一緒に送信する場合、スケジューラーは並行して非常に多くのジョブを開始し、I / Oが遅すぎるためほとんどのタイムアウトになるため、2時間ごとに50個の新しいジョブをクラスターに追加します。cronジョブが使用するものではない場合、私は他のアイデアを受け入れています。
リストを実行するだけの単純なPython(またはシェル)スクリプトを作成する方が簡単ではないでしょうか?スクリプトでsleep()を実行するだけです-CPU時間はかかりません。
—
jcoppens
JOB_COUNTERはどこで初期化しますか?また、cronは実行ごとに新しいシェルを作成することに注意してください。JOB_COUNTERを永続化する必要があります。たとえば、cronのユーザー.bashrcに書き込みます。
—
bjanssen