Script para verificar o status do ntp e a sincronização do horário do sistema

3

Procurando por um script para (1) verificar o status de ntp e (2) se estiver dentro de +/- 1 segundo de um determinado servidor de horário (por exemplo < em> 123.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 eu 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
    
por Cartwig 17.02.2016 / 06:13

1 resposta

4

Eu uso ntpq para isso.

Veja alguns trechos e pseudo-códigos.

Primeiro, calcule o deslocamento e armazene-o em um 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 sistema operacional. Por exemplo, use service ntpd status no red hat, centos e similar e, em seguida, verifique o status do resultado na variável $? .

por 17.02.2016 / 10:10