今日の最初のcron実行を見つける方法はありますか?

今日の最初のcron実行を見つける方法はありますか?

ここで具体的なシナリオを説明します。

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
....

上記のコードはうまく機能しますが、時には同期を維持するのは簡単ではありません。誰もが解決策やよりクリーンな方法を提案できますか?

よろしくお願いします。

ベストアンサー1

おすすめ記事