Script para verificar o status do NTP e a sincronização da hora do sistema

Script para verificar o status do NTP e a sincronização da hora do sistema

Procurando um roteiro para(1)verifique o status do NTP e(2)se estiver dentro de +/- 1 segundo de um determinado servidor de horário (por exemplo123.456.789.10).(3)Além disso, a hora do sistema deve ser verificada para ver se o fuso horário está definido corretamente (por exemplo,PST)

Aqui está o que tenho até agora, verificando o status do 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

Responder1

Eu uso ntpqpara isso.

Aqui estão alguns trechos e pseudocódigo.

Primeiro, calcule o deslocamento e armazene-o em uma var:

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

  2. Servidor não sincronizado quando: ntp_offset >= 1000

  3. a verificação de que o ntpd está inativo pode ser feita com abordagens diferentes, dependendo do seu sistema operacional. Por exemplo, use service ntpd statusem red hat, centos e similares, e depois verifique o status do resultado na $?variável.

informação relacionada