ntp 상태 및 시스템 시간 동기화를 확인하는 스크립트

ntp 상태 및 시스템 시간 동기화를 확인하는 스크립트

스크립트를 찾고 있습니다.(1)NTP 상태를 확인하고(2)주어진 시간 서버의 +/- 1초 내에 있는 경우(예:123.456.789.10).(삼)또한 시스템 시간을 확인하여 시간대가 올바르게 설정되어 있는지 확인하세요(예:태평양 표준시)

이것이 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이것을 사용한다.

다음은 일부 스니펫과 의사코드입니다.

먼저 오프셋을 계산하여 var에 저장합니다.

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가 다운되었는지 확인할 수 있습니다. 예를 들어 service ntpd statusred hat, centos 등에 사용한 후 $?결과 변수의 상태를 확인합니다.

관련 정보