NTP Debian:我怎麼知道上次輪詢是否成功

NTP Debian:我怎麼知道上次輪詢是否成功

我的任務是編寫一個支援 NTP 通訊的應用程式。到目前為止一切正常,但我需要知道最後一次 ntp 輪詢是否成功。

當我拔掉網線時,ntpstat甚至在第二天早上告訴我,一切都很好。但整晚都沒有NTP通訊...

你有什麼想法嗎?

謝謝你!

Pinging 不是一個好的解決方案,bc 回應可能被伺服器關閉或伺服器可訪問,但 ntp 守護程序未運行。

答案1

我自己找到的。

ntpq -pn 有一個「reach」列,如果民意調查不成功,該列就會減少

答案2

大多數應用程式並不關心每個 NTP 資料包是否到達。 IP 上的 UDP 偶爾會出現遺失,這種情況確實會發生。 ntpd 繼續並根據最後已知的偏移和漂移不斷進行調整。實際上,大多數應用程式根本不關心時間同步。少數這樣做的可能會在啟動時等待,直到 ntpd(或 chronyd)啟動。

一種已達到閾值的開源監控腳本是ntpmon。作為參考,它認為所有 ntp 來源的成功率為 75%。因此,最後 8 個資料包中的 6 個資料包的到達範圍是 8 位數字。這加上偏移閾值構成了基礎設施監控的主機指標。

ntpstat 可能指的是shell腳本ntpstat(替換較早的程序)。這將列印出來源和估計的錯誤。並且僅在特定情況下以非零返回代碼退出,例如 NTP 守護程序未運行。 ntpstat 不會在到達時發出警報,無論是有意支援斷開連接的用例,還是該功能從未實現,我不知道。

相關內容