web-dev-qa-db-ja.com

ntpステータスとシステム時刻同期をチェックするスクリプト

スクリプトを探して(1) ntpのステータスを確認し、(2)が指定されたタイムサーバーの+/- 1秒以内である場合(例123.456.789.10)。 (3)さらに、タイムゾーンが正しく設定されているかどうかを確認するためにシステム時間を確認する必要があります(例[〜#〜] pst [〜#〜]

これが私がこれまで持ってきたもので、ntpのステータスをチェックしています:

#!/bin/bash

if [[ ! -x /usr/bin/ntpstat ]]
then
  echo "ntpstat is NOT installed: please install it"
  exit 3

res=$(/usr/bin/ntpstat)
rc=$?

case $rc in
  0 )
    echo "clocks are synchronized"
    ;;
  1 )
    echo "WARNING: clocks are NOT synchronized"
    ;;
  2 )
    echo "CRITICAL: NTPD IS DOWN -- NO STATUS"
    ;;
esac
3
Cartwig

ntpqを使用しています。

ここにいくつかのスニペットと擬似コードがあります。

まず、オフセットを計算して変数に格納します。

ntp_offset=$(ntpq -pn | \
     /usr/bin/awk 'BEGIN { offset=1000 } $1 ~ /\*/ { offset=$9 } END { print offset }')
  1. サーバーOK:ntp_offset <1000

  2. Ntp_offset> = 1000の場合、サーバーは非同期です

  3. ntpdがダウンしているかどうかのチェックは、OSに応じて、さまざまな方法で実行できます。たとえば、Red Hat、centosなどではservice ntpd statusを使用し、$?変数で結果ステータスを確認します。

5
Nuno Pereira