私たちはサーバークロックをNTPタイムサーバーと同期させたいと思います。このntpサーバーがタイムアウトまたはアウトソーシングされたタイムアウト(ソケットタイムアウト)内に応答しない場合は、NTP要求をタイムサービス(ハエ:ntp-p1.obspm.fr)に送信し、応答を再開するスクリプト(スクリプトbach)を設計します。します。 )たとえば、15秒後に2番目のサーバーに要求を送信します(例:besenson:ntp-p1.obspm.fr)。その人も応答しない場合は、メールで管理者に通知してください。
答え1
理想的には、NTPはデーモンとして実行され、一日中複数のサーバーと通信します。これにより、平均化と統計方法を活用して、異常値と不良サーバーを識別できます。 NTPがこのモードで実行されている場合は、そのピアに関する詳細情報をすでに維持しています。以下を実行してこのデータを表示できます。
$ ntpq -c associations
ind assid status conf reach auth condition last_event cnt
===========================================================
1 27930 962a yes yes none sys.peer sys_peer 2
2 27931 941d yes yes none candidate 1
$ ntpq -p
remote refid st t when poll reach delay offset jitter
==============================================================================
*ntpserver .GPS. 1 u 553 1024 377 0.169 0.300 0.223
+ntpserver2 10.41.200.62 2 u 193 1024 377 0.493 0.307 0.168
最後の2行の最初の文字は「カウントコード」と呼ばれ、特に興味があるかもしれません。ここに「」が表示されている場合、ピアは使用されないことを意味します。アクセスできない、または使用を妨げる別の深刻な問題があるためです。よりntpq のマニュアルページもっと学ぶ。次のようにモニタリングに接続できます。
#!/bin/bash
output=`ntpq -p | tail -n +3 | cut -d' ' -f1`
for line in $output; do
tallycode=${line:0:1}
host=${line:1}
if [[ "$tallycode" == [#+\*] ]]; then
echo "Info: Found good NTP peer $host"
exit 0
else
echo "Warning: bad NTP peer $host"
fi
done
echo "Error: None of the peers provides useful time!"
exit -1
各サーバーに対して、愚かな単一のテストを実行したい場合は、その出力を解析できますsntp -t 15 <servername>
。しかし、上記のアプローチはより強力でなければなりません。