我们有 bash 脚本来配置chrony.conf
脚本检查 ping 是否正常ntp1
(ntp2
ntp 服务器)
然后脚本将 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
问题是有时用户决定禁用ping
或icmp
那么在那种情况下我们检查 ping 的场景不相关,并且我们无法将行添加到/etc/chrony.conf
所以我们想知道如何测试和ntp1
服务器ntp2
以便添加ntp1和ntp2
chrony 配置
例如,如果ntp1
和ntp2
not 似乎是 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。
仅当两者均无响应时,您可能不想继续。