Linux
檢查 ntp 狀態和系統時間同步的腳本
尋找一個腳本來**(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 }')
- 伺服器正常時:ntp_offset < 1000
- 伺服器在以下情況下不同步:ntp_offset >= 1000
- 根據您的作業系統,可以使用不同的方法檢查 ntpd 是否關閉。例如
service ntpd status
在red hat、centos等上使用,然後在$?
變數上查看結果狀態。