Skript zum Überprüfen des NTP-Status und der Systemzeitsynchronisierung

Skript zum Überprüfen des NTP-Status und der Systemzeitsynchronisierung

Auf der Suche nach einem Skript für(1)Überprüfen Sie den Status von NTP und(2)wenn die Zeit innerhalb von +/- 1 Sekunde von der eines bestimmten Zeitservers liegt (z. B.123.456.789.10).(3)Darüber hinaus sollte die Systemzeit überprüft werden, um festzustellen, ob die Zeitzone richtig eingestellt ist (z. B.PST)

Folgendes habe ich bisher beim Überprüfen des NTP-Status:

#!/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

Antwort1

Ich verwende ntpqdafür.

Hier sind einige Snippets und Pseudocode.

Berechnen Sie zunächst den Offset und speichern Sie ihn in einer Variable:

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

  2. Server nicht synchronisiert wenn: ntp_offset >= 1000

  3. Die Prüfung, ob NTPD ausgefallen ist, kann je nach Betriebssystem mit unterschiedlichen Ansätzen durchgeführt werden. Verwenden Sie es beispielsweise service ntpd statusauf Red Hat, CentOS und ähnlichen Systemen und prüfen Sie dann den Ergebnisstatus der $?Variablen.

verwandte Informationen