寻找一个脚本来(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
这个。
这是一些片段和伪代码。
首先,计算偏移量并将其存储在 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 等上使用,然后检查$?
变量的结果状态。