Linux

檢查 ntp 狀態和系統時間同步的腳本

  • March 11, 2018

尋找一個腳本來**(1)檢查 ntp 的狀態和(2)它是否在給定時間伺服器的 +/- 1 秒內(例如123.456.789.10)。(3)另外,應該檢查系統時間,看時區是否設置正確(例如PST**)

這是我目前所擁有的,檢查 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

我用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 status在red hat、centos等上使用,然後在$?變數上查看結果狀態。

引用自:https://unix.stackexchange.com/questions/263751