
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 ntpq
dafü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 }')
Server OK wenn: ntp_offset < 1000
Server nicht synchronisiert wenn: ntp_offset >= 1000
Die Prüfung, ob NTPD ausgefallen ist, kann je nach Betriebssystem mit unterschiedlichen Ansätzen durchgeführt werden. Verwenden Sie es beispielsweise
service ntpd status
auf Red Hat, CentOS und ähnlichen Systemen und prüfen Sie dann den Ergebnisstatus der$?
Variablen.