linux實現時間同步的方法的有兩種,分別是:1、使用ntpdate從時間服務器來更新時間,不需要自己做任何配置;2、使用ntp來搭建自己的時間服務器。
【推薦課程:Linux系統】
由于硬件的原因,機器或多或少的跟標準時間對不上,誤差幾秒到幾分鐘不等。對于服務器來說時間不準會有很多麻煩。例如支付的時候,無法下單,游戲無法登錄等。接下來將在文章中為大家分享Linux系統中如何實現時間同步,希望對大家有所幫助
方法一:用ntpdate從時間服務器更新時間
如果linux系統沒有ntpdate這個命令,可以輸入以下代碼進行安裝
yum?install?ntp
安裝完了之后,你不要做什么配置,也不需要,直接測試一下
vi?/etc/ntp.conf add?below: server?1.cn.pool.ntp.org server?3.asia.pool.ntp.org server?2.asia.pool.ntp.org
restart service and sync the time
[root@localhost?~]#?ntpdate?time.nist.gov?? 22?Oct?21:11:43?ntpdate[5014]:?adjust?time?server?207.200.81.113?offset?-0.018788?sec
如果顯示上面的內容說明同步成功了,然后在crontab里面加上以下內容。
*/10?*?*?*?*?ntpdate?time.nist.gov???#域名或IP
每隔十分鐘同步一次。推薦幾個時間服務器。
time.nist.gov
time.nuri.net
0.asia.pool.ntp.org
1.asia.pool.ntp.org
2.asia.pool.ntp.org
3.asia.pool.ntp.org
方法二、用ntp搭建自己的時間服務器
上面是利用別人的時間服務器來同步時間,這些時間服務器都是比較權威的。當我們自己搭建時間服務器就不用crontab來定時去跑。
1、安裝時間服務器ntp
yum?install?ntp
2、配置ntp
[root@localhost?~]#?cat?/etc/ntp.conf?|awk?'{if($0?!~?/^$/?&&?$0?!~?/^#/)?{print?$0}}'?? restrict?default?ignore???//默認不允許修改或者查詢ntp,并且不接收特殊封包?? restrict?127.0.0.1????????//給于本機所有權限?? restrict?192.168.1.0?mask?255.255.255.0?notrap?nomodify??//給于局域網機的機器有同步時間的權限?? server?time.nist.gov?prefer??????//設置時間服務器,加prefer表示優先?? server?0.asia.pool.ntp.org?? server?1.asia.pool.ntp.org?? server?2.asia.pool.ntp.org?? server??127.127.1.0?????#?local?clock?? fudge???127.127.1.0?stratum?10?? driftfile?/var/lib/ntp/drift?? keys?/etc/ntp/keys
3、啟動 ntp
[root@localhost?~]#?/etc/init.d/ntpd?start
4、查看并測試
[root@localhost?~]#?netstat?-upnl?|grep?ntpd???//查看時程???? [root@localhost?~]#?ntpq?-pn????//查看同步的服務器IP??? remote???????????refid??????st?t?when?poll?reach???delay???offset??jitter?? ==============================================================================??? 50.77.217.185???.INIT.??????????16?u????-???64????0????0.000????0.000???0.000??? 202.90.158.4????.INIT.??????????16?u????-???64????0????0.000????0.000???0.000??? 202.71.100.89???.INIT.??????????16?u????-???64????0????0.000????0.000???0.000??? 202.134.1.10????.INIT.??????????16?u????-???64????0????0.000????0.000???0.000?? *127.127.1.0?????.LOCL.??????????10?l???18???64??377????0.000????0.000???0.001???? [root@localhost?~]#?ntpstat???//同步的結果?? synchronised?to?local?net?at?stratum?11??? time?correct?to?within?12?ms??? polling?server?every?512?s
remote:即NTP主機的IP或主機名稱。注意最左邊的符號,如果由“+”則代表目前正在作用鐘的上層NTP,如果是“*”則表示也有連上線,不過是作為次要聯機的NTP主機。
-
refid:參考的上一層NTP主機的地址
-
st:即stratum階層
-
when:幾秒前曾做過時間同步更新的操作
-
poll:下次更新在幾秒之后
-
reach:已經向上層NTP服務器要求更新的次數
-
delay:網絡傳輸過程鐘延遲的時間
-
offset:時間補償的結果
-
jitter:Linux系統時間與BIOS硬件時間的差異時間
推薦第一種方法,雖然搭建個時間服務器,比較簡單的,但是我覺得沒有這個必要。如果用別人的時間服務器,每隔10分鐘同步一次,可以精確到毫秒。