《Linux基礎(chǔ)知識之ntpd和ntpdate的區(qū)別》要點:
本文介紹了Linux基礎(chǔ)知識之ntpd和ntpdate的區(qū)別,希望對您有用。如果有疑問,可以聯(lián)系我們。
在Linux操作系統(tǒng)設(shè)置與上級NTP時鐘源同步是很基本的操作,Linux提供了ntpd和ntpdate兩種方式來實現(xiàn)時間同步,但它們在同步原理上則有著本質(zhì)的區(qū)別:ntpd在實際同步時間時是一點點的校準時間的,也可以理解為ntpd是平滑同步;而ntpdate不會考慮其他程序是否會陣痛,就立即同步.因此在生產(chǎn)環(huán)境中慎用ntpdate.
我們可以結(jié)合一個應(yīng)用場景來加強對ntpd和ntpdate的理解:
網(wǎng)站限制用戶注冊1小時后才能發(fā)帖.
數(shù)據(jù)庫服務(wù)器在 10:00分接受了我的注冊邀請;
10:03分,ntpdate將數(shù)據(jù)庫時間強行改成9:35分;
然后10:05分(9:37分)我嘗試發(fā)帖,系統(tǒng)判斷我注冊時間是否滿一小時會使用:9:37 – 10:00
最后電腦就邏輯混亂了...
類似的案例在網(wǎng)上也有很詳細的說明,貼出來給大家看看:
時鐘的躍變,有時候會導(dǎo)致很嚴重的問題.許多應(yīng)用程序依賴連續(xù)的時鐘.畢竟,這是一項常見的假定,即:取得的時間是線性的,一些操作,例如數(shù)據(jù)庫事務(wù),通常會地依賴這樣的事實:時間不會往回“跳躍”.
不幸的是,ntpdate調(diào)整時間的方式就是我們所說的“躍變”,這就導(dǎo)致了幾個非常明顯的問題:
1. 這樣做不安全.ntpdate的設(shè)置依賴于ntp服務(wù)器的安全性,攻擊者可以利用一些軟件設(shè)計上的缺陷,拿下ntp服務(wù)器并令與其同步的服務(wù)器執(zhí)行某些消耗性的任務(wù).由于ntpdate采用的方式是跳變,跟隨它的服務(wù)器無法知道是否發(fā)生了異常(時間不一樣的時候,唯一的辦法是以服務(wù)器為準).
2. 這樣做不精確.一旦ntp服務(wù)器宕機,跟隨它的服務(wù)器也就會無法同步時間.與此不同,ntpd不僅能夠校準計算機的時間,而且能夠校準計算機的時鐘.
3. 這樣做不夠優(yōu)雅.由于是跳變,而不是使時間變快或變慢,依賴時序的程序會出錯(例如,如果ntpdate發(fā)現(xiàn)你的時間快了,則可能會經(jīng)歷兩個相同的時刻,對某些應(yīng)用而言,這是致命的).
因而,唯一可以令時間發(fā)生跳變的點,是計算機剛剛啟動,但還沒有啟動很多服務(wù)的那個時候.其余的時候,理想的做法是使用ntpd來校準時鐘,而不是調(diào)整計算機時鐘上的時間.
NTPD 在和時間服務(wù)器的同步過程中,會把 BIOS 計時器的振蕩頻率偏差,或者說 Local Clock 的自然漂移(drift)記錄下來.這樣即使網(wǎng)絡(luò)有問題,本機仍然能維持一個相當(dāng)精確的走時.
所以最后的建議是:如果首次安裝操作系統(tǒng)還未啟動業(yè)務(wù)之前,建議先ntpdate,然后再開啟ntpd服務(wù)與時間服務(wù)器進行實時平滑同步.
轉(zhuǎn)載請注明本頁網(wǎng)址:
http://www.fzlkiss.com/jiaocheng/4656.html