比較 NTPD 和 ntpdate
這兩種伺服器同步方式的優缺點是什麼?
在我看來,您的伺服器每天的漂移可能不會超過 1 秒,因此 crontab 上的 ntpdate 就可以了。但我聽說你可以在這裡使用冗餘的 NTP 伺服器
http://www.pool.ntp.org/en/use.html
以便在發生故障時保持同步時間。
你有什麼建議嗎?
NTP 算法包含允許您計算和修復伺服器時鐘偏差的資訊。NTPD 包括使用它來保持時鐘同步的能力,並且將比未執行 NTPD 的電腦上的時鐘更準確地執行。NTPD 還將使用多個伺服器來提高準確性。
ntpdate 不保留任何狀態來為您執行此服務,因此不會提供相同的準確性。它允許您向它提供一個伺服器列表,它將用來嘗試為您提供更好的結果,但這並不能替代 NTPD 中提供的複雜算法,這些算法會隨著時間的推移跟踪您與每個伺服器的偏差。
NTPDATE 會立即更正系統時間,這可能會導致某些軟體出現問題(例如,破壞現在看起來很舊的會話)。NTPD 有意緩慢地糾正系統時間,避免了該問題。您可以在啟動 NTPD 時添加 -g 開關,以允許 NTPD 第一次更新較大的更新,這或多或少等同於在啟動 NTPD 之前執行一次 ntpdate,這一次是推薦的做法。
至於安全問題,ntp 伺服器不會在未啟動的連接上重新連接,這意味著您的防火牆應該能夠告訴您發起了 ntp 請求並允許返回流量。無需為任意連接打開埠即可使 NTPD 正常工作。
從 ntpdate(8) 手冊頁:
ntpdate 可以根據需要手動執行以設置主機時鐘,也可以從主機啟動腳本執行以在啟動時設置時鐘。在某些情況下,這對於在啟動 NTP 守護程序 ntpd 之前初始設置時鐘很有用。也可以從 cron 腳本執行 ntpdate。但是,重要的是要注意,帶有人為的 cron 腳本的 ntpdate 不能替代 NTP 守護程序,後者使用複雜的算法來最大限度地提高準確性和可靠性,同時最大限度地減少資源使用。最後,由於 ntpdate 不像 ntpd 那樣規範主機時鐘頻率,因此使用 ntpdate 的準確性是有限的。