Debian

NTP Debian:我怎麼知道上次投票是否成功

  • April 6, 2022

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

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

你有什麼想法嗎?

謝謝!

Pinging 不是一個好的解決方案,bc 響應可能被伺服器關閉或伺服器可達,但 ntp 守護程序沒有執行。

自己找到的。

ntpq -pn 有一個列“reach”,如果輪詢不成功,該列會減少

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

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

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

引用自:https://serverfault.com/questions/1097823