Script para verificar el estado de ntp y la sincronización de la hora del sistema

Script para verificar el estado de ntp y la sincronización de la hora del sistema

Buscando un guión para(1)comprobar el estado de ntp y(2)si está dentro de +/- 1 segundo de un servidor de hora determinado (p. ej.123.456.789.10).(3)Además, se debe verificar la hora del sistema para ver si la zona horaria está configurada correctamente (por ejemplo,hora del Pacífico)

Esto es lo que tengo hasta ahora, comprobando el estado de 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

Respuesta1

Yo uso ntpqpara eso.

Aquí hay algunos fragmentos y pseudocódigo.

Primero, calcule el desplazamiento y guárdelo en una var:

ntp_offset=$(ntpq -pn | \
     /usr/bin/awk 'BEGIN { offset=1000 } $1 ~ /\*/ { offset=$9 } END { print offset }')
  1. El servidor está bien cuando: ntp_offset <1000

  2. Servidor no sincronizado cuando: ntp_offset >= 1000

  3. La verificación de ntpd inactivo se puede realizar con diferentes enfoques, dependiendo de su sistema operativo. Por ejemplo, utilícelo service ntpd statusen red hat, centos y similares, y luego verifique el estado del resultado en la $?variable.

información relacionada