如何在不使用 ping 测试的情况下将 ntp 服务器测试为响应的真实服务器

如何在不使用 ping 测试的情况下将 ntp 服务器测试为响应的真实服务器

我们有 bash 脚本来配置chrony.conf

脚本检查 ping 是否正常ntp1ntp2ntp 服务器)

然后脚本将 ntp 服务器插入到/etc/chrony.conf(仅当 ping 成功时)

bash 脚本的示例:

ping -c 1 ntp1

if [[ $? -eq 0 ]];then
echo "server ntp1 iburst" >> /etc/chrony.conf
else
echo "sorry so much but no ping to ntp1 server , /etc/chrony.conf will not configured "
exit 1
fi


ping -c 1 ntp2
if [[ $? -eq 0 ]];then
echo "server ntp2 iburst" >> /etc/chrony.conf
else
echo "sorry so much but no ping to ntp2 server , /etc/chrony.conf will not configured "
exit 1
fi

问题是有时用户决定禁用pingicmp

那么在那种情况下我们检查 ping 的场景不相关,并且我们无法将行添加到/etc/chrony.conf

所以我们想知道如何测试ntp1服务器ntp2以便添加ntp1ntp2chrony 配置

例如,如果ntp1ntp2not 似乎是 ntp 服务器,那么我们不会将它们添加到 chrony 配置中

答案1

使用工具检查NTP服务器ntpdate

像这样的东西:
OP=$(ntpdate -q ntp1)

如果 OP 包含正确的日期数据,则 ntp1 正在工作。否则尝试 ntp2。


参考 :https://www.tunnelsup.com/how-to-test-an-ntp-server-using-ntpdate/
输出 :

$ ntpdate -q pool.ntp.org  
server 64.71.128.26, stratum 2, offset 1.552116, delay 0.06792  
server 104.236.236.188, stratum 2, offset 1.556884, delay 0.11574  
server 108.59.2.24, stratum 2, offset 1.569006, delay 0.11952  
server 209.114.111.1, stratum 2, offset 1.542965, delay 0.11389  
19 Apr 21:30:06 ntpdate[32062]: step time server 64.71.128.26 offset 1.552116 sec

关于您的脚本的快速评论:
当 ntp1 没有响应时,您应该记录它但不退出,而应该继续处理 ntp2。
仅当两者均无响应时,您可能不想继续。

相关内容