ここで具体的なシナリオを説明します。
12台のサーバーが複数あり、それぞれcronエントリがあり、各サーバーの実行時間が異なります。例えば
Server1:
30 0,8,16 /p1/scripts/forkChild.sh
Server2:
0 2,4,6,18,22 /p1/scripts/forkChild.sh
Server3:
30 6,18 /p1/scripts/forkChild.sh
など。
私が達成したいのはwhileがforkChild.sh
実行されることです。現在の実行が今日の最初の実行かどうかを知りたいです。サーバー 1 では最初の実行時間は 00:30 で、サーバー 3 では最初の実行時間は 6:30 です。
現在は、スクリプトに変数を追加し、最初に発生したときに手動で実行してこれを行います。
サーバー1の例forkChild.sh
:
firstExecution=00:30
currenttime=$(date +%H:%M:S)
if [[ "$currenttime" = $firstExecution ]]; then
....
上記のコードはうまく機能しますが、時には同期を維持するのは簡単ではありません。誰もが解決策やよりクリーンな方法を提案できますか?
よろしくお願いします。