检查 ntp 状态和系统时间同步的脚本

Car*_*wig 3 linux shell-script ntpd ntp

寻找脚本来(1)检查 ntp 的状态和(2)它是否在给定时间服务器(例如123.456.789.10)的+/- 1 秒内。(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
Run Code Online (Sandbox Code Playgroud)

Nun*_*ira 5

我用ntpq那个。

这是一些片段和伪代码。

首先,计算偏移量并将其存储在 var 中:

ntp_offset=$(ntpq -pn | \
     /usr/bin/awk 'BEGIN { offset=1000 } $1 ~ /\*/ { offset=$9 } END { print offset }')
Run Code Online (Sandbox Code Playgroud)
  1. 服务器正常时:ntp_offset < 1000

  2. 服务器不同步时:ntp_offset >= 1000

  3. ntpd 是否关闭的检查可以通过不同的方法完成,具体取决于您的操作系统。比如service ntpd status在red hat、centos等上使用,然后在$?变量上查看结果状态。