cronで分岐処理

cronで分岐処理を作ることが最近あって
ネットにネタがあまりなかったで
ここに書いておきます。

通常分岐処理がしたい場合は
シェルの中で書いてしまえばいいので
あまりcronのスクリプト上で分岐処理(if文の感じ)したい
という要件は少ないでしょう。

しかし
私はこの必要があったので、ちょっと苦労しました。

LinuxでHAクラスタを組んだときに
稼働系の時だけシェルを叩いて欲しい
待機系の時にはシェルの部分はディスクが見えないので
シェルを叩いて欲しくない(エラーログが出るから)
という事情でした。

エラーログなんて出させておけばいい
というのが
許される環境であれば、気にもとめないのですが
あらゆるエラーログが検知され
理由を説明しないといけないような
なかなか大変な現場もあるわけですね。

そこで実行ホストが稼働系か、待機系かを
シェルを叩くまえに
cronでジャッジして
待機系の時は何もしないで、という感じです。

どんな感じで書くかというと

* * * * *  root [ “$(hostname)” = “hogepc01” ] && sh /var/hoge/hoge.sh

上の例だと
hostnameコマンドの実行結果が = hogepc01 の場合のみ
/var/hoge/hoge.sh
を実行する、という感じです。

上記をカスタムして
ご自分の環境にマッチさせてみてください。

TOP