Скрипт для проверки статуса ntp и синхронизации системного времени

Скрипт для проверки статуса ntp и синхронизации системного времени

Ищу сценарий для(1)проверьте статус ntp и(2)если он находится в пределах +/- 1 секунды от заданного сервера времени (например,123.456.789.10).(3)Кроме того, следует проверить системное время, чтобы убедиться, что часовой пояс установлен правильно (например,Тихоокеанское стандартное время)

Вот что у меня получилось на данный момент, проверив статус 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

решение1

ntpqЯ для этого использую .

Вот несколько фрагментов и псевдокода.

Сначала вычислим смещение и сохраним его в переменной:

ntp_offset=$(ntpq -pn | \
     /usr/bin/awk 'BEGIN { offset=1000 } $1 ~ /\*/ { offset=$9 } END { print offset }')
  1. Сервер ОК, когда: ntp_offset < 1000

  2. Сервер не синхронизирован, когда: ntp_offset >= 1000

  3. проверка ntpd is down может быть выполнена разными способами в зависимости от вашей ОС. Например, используйте service ntpd statusна red hat, centos и подобных, а затем проверьте статус результата на $?переменной.

Связанный контент