Bash
如何在不使用 ping 測試的情況下將 ntp 伺服器測試為響應的真實伺服器
我們有配置
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
ntp1
和chrony配置ntp2``ntp2
例如,如果
ntp1
似乎ntp2
不是作為 ntp 伺服器,那麼我們不會將它們添加到 chrony 配置中
使用工具檢查 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。
只有當兩者都沒有響應時,您可能不想繼續。