ab’s blog

インフラの呟きです。

NTP同期チェックをcronで実行 ntpdate REDHAT7

hahahahahaha

はじめに

鉄のフライパン使うと鉄分が取れるそうです。そんでこの前フライパン買ったんです、テフロン加工のやつ(笑)。話は変わりましてサーバの時刻同期をntpdとかchronydでやってるんですが上位時刻サーバとの接続が出来なくなったとき、エラーとかログに出なくて(出せる方法ご存知のかた教えてください)。間に合わせで同期チェックするshellを作りました。

shell

ntpCheck.sh

#!/bin/bash
BASE=$(basename $0)

echo START ${BASE}

/usr/sbin/ntpdate -q ntp.nict.jp
if [ $? -ne 0 ]; then
        echo "Abnomal END :ntp check failed."
        exit 1
fi

echo Nomal END
exit 0

でこいつをcronに登録します。実行結果は今回はloggerで/var/log/messagesに出します。シェルのパスは適宜変更します。蛇足にREDHAT7はloggerでプライオリティを指定しても、デフォルトの状態ではログに記載されませんのでloggerでプライオリティを付けても意味ないです(rsyslog.confの設定変えれば記載されます)。

#ntp syncronize check
0 * * * * ~/shell/ntpCheck.sh 2>&1 | logger -t ntpCheck.sh -ip info

うまくいくと/var/log/messagesに以下のようなログが出ます。

Mar 29 18:00:08 serverx ntpCheck.sh[9351]: Nomal END

時刻同期に失敗するとこんなログです

Mar 29 18:00:08 serverx ntpCheck.sh[9351]: Abnomal END :ntp check failed." 

以上