在Ubuntu中使用NTP實(shí)現(xiàn)時(shí)間同步
NTP 是通過(guò)網(wǎng)絡(luò)來(lái)同步時(shí)間的一種 TCP/IP 協(xié)議。通??蛻舳讼蚍?wù)器請(qǐng)求當(dāng)前的時(shí)間,并根據(jù)結(jié)果來(lái)設(shè)置其時(shí)鐘。
這個(gè)描述是挺簡(jiǎn)單的,實(shí)現(xiàn)這一功能卻是極為復(fù)雜的 - 首先要有多層 NTP 服務(wù)器,第一層 NTP 服務(wù)器連接原子時(shí)鐘,第二層、第三層服務(wù)器則擔(dān)起負(fù)載均衡的責(zé)任,以處理因特網(wǎng)傳來(lái)的所有請(qǐng)求。另外,客戶端可能也超乎你想象的復(fù)雜 - 它必須排除通訊延遲,調(diào)整時(shí)間的同時(shí)不干擾其它在服務(wù)器中運(yùn)行的進(jìn)程。幸運(yùn)的是,所有的這些復(fù)雜性都進(jìn)行了封裝,你是不可見(jiàn)也不需要見(jiàn)到的。
在 Ubuntu 中,是使用 ntpdate 和 ntpd 來(lái)同步時(shí)間的。
timedatectl
在最新的 Ubuntu 版本中,timedatectl 替代了老舊的 ntpdate。默認(rèn)情況下,timedatectl 在系統(tǒng)啟動(dòng)的時(shí)候會(huì)立刻同步時(shí)間,并在稍后網(wǎng)絡(luò)連接激活后通過(guò) socket 再次檢查一次。
如果已安裝了 ntpdate / ntp,timedatectl 會(huì)退而讓你使用之前的設(shè)置。這樣確保了兩個(gè)時(shí)間同步服務(wù)不會(huì)相互沖突,同時(shí)在你升級(jí)的時(shí)候還保留原本的行為和配置。但這也意味著從舊版本的發(fā)行版升級(jí)時(shí) ntp/ntpdate 仍會(huì)安裝,因此會(huì)導(dǎo)致新的基于 systemd 的時(shí)間服務(wù)被禁用。
timesyncd
在最新的 Ubuntu 版本中,timesyncd 替代了 ntpd 的客戶端的部分。默認(rèn)情況下 timesyncd 會(huì)定期檢測(cè)并同步時(shí)間。它還會(huì)在本地存儲(chǔ)更新的時(shí)間,以便在系統(tǒng)重啟時(shí)做時(shí)間單步調(diào)整。
通過(guò) timedatectl 和 timesyncd 設(shè)置的當(dāng)前時(shí)間狀態(tài)和時(shí)間配置,可以使用 timedatectl status 命令來(lái)進(jìn)行確認(rèn)。
timedatectl status Local time: Fri 2016-04-29 06:32:57 UTC Universal time: Fri 2016-04-29 06:32:57 UTC RTC time: Fri 2016-04-29 07:44:02 Time zone: Etc/UTC (UTC, +0000) Network time on: yes NTP synchronized: no RTC in local TZ: no
如果安裝了 NTP,并用它替代 timedatectl 來(lái)同步時(shí)間,則 NTP synchronized 將被設(shè)置為 yes。
timedatectl 和 timesyncd 用來(lái)獲取時(shí)間的 nameserver 可以通過(guò) /etc/systemd/timesyncd.conf 來(lái)指定,另外在 /etc/systemd/timesyncd.conf.d/ 下還有靈活的附加配置文件。
ntpdate
由于 timedatectl 的存在,各發(fā)行版已經(jīng)棄用了 ntpdate,默認(rèn)不再進(jìn)行安裝。如果你安裝了,它會(huì)在系統(tǒng)啟動(dòng)的時(shí)候根據(jù) Ubuntu 的 NTP 服務(wù)器來(lái)設(shè)置你電腦的時(shí)間。之后每當(dāng)一個(gè)新的網(wǎng)絡(luò)接口啟動(dòng)時(shí),它就會(huì)重新嘗試同步時(shí)間 —— 在這期間只要其涵蓋的時(shí)間差不是太大,它就會(huì)慢慢偏移時(shí)間。該行為可以通過(guò) -B/-b 開(kāi)關(guān)來(lái)進(jìn)行控制。
時(shí)間服務(wù)器
默認(rèn)情況下,基于 systemd 的工具都是從 ntp.ubuntu.com 請(qǐng)求時(shí)間同步的。經(jīng)典的基于 ntpd 的服務(wù)基本上都是使用 [0-3].ubuntu.pool.ntp.org 池中的 2.ubuntu.pool.ntp.org,還有 ntp.ubuntu.com,此外需要的話還支持 IPv6。如果想強(qiáng)制使用 IPv6,可以使用 ipv6.ntp.ubuntu.com,不過(guò)這并非默認(rèn)配置。
ntpd
ntp 的守護(hù)進(jìn)程 ntpd 會(huì)計(jì)算你的系統(tǒng)時(shí)鐘的時(shí)間偏移量并且持續(xù)的進(jìn)行調(diào)整,所以不會(huì)出現(xiàn)時(shí)間差距較大的更正,比如說(shuō),不會(huì)導(dǎo)致不連續(xù)的日志。該進(jìn)程只花費(fèi)少量的進(jìn)程資源和內(nèi)存,但對(duì)于現(xiàn)代的服務(wù)器來(lái)說(shuō)實(shí)在是微不足道的了。
安裝
要安裝 ntpd,在終端命令行中輸入:sudo apt install ntp
配置
編輯 /etc/ntp.conf —— 增加/移除 server 行。默認(rèn)配置有以下服務(wù)器:
# Use servers from the NTP Pool Project. Approved by Ubuntu Technical Board # on 2011-02-08 (LP: #104525). See http://www.pool.ntp.org/join.html for # more information. server 0.ubuntu.pool.ntp.org server 1.ubuntu.pool.ntp.org server 2.ubuntu.pool.ntp.org server 3.ubuntu.pool.ntp.org
修改配置文件之后,你需要重新加載 ntpd:
sudo systemctl reload ntp.service
查看狀態(tài)
使用 ntpq 來(lái)查看更多信息:
# sudo ntpq -p remote refid st t when poll reach delay offset jitter ============================================================================== +stratum2-2.NTP. 129.70.130.70 2 u 5 64 377 68.461 -44.274 110.334 +ntp2.m-online.n 212.18.1.106 2 u 5 64 377 54.629 -27.318 78.882 *145.253.66.170 .DCFa. 1 u 10 64 377 83.607 -30.159 68.343 +stratum2-3.NTP. 129.70.130.70 2 u 5 64 357 68.795 -68.168 104.612 +europium.canoni 193.79.237.14 2 u 63 64 337 81.534 -67.968 92.792
PPS 支持
從 Ubuntu 16.04 開(kāi)始,ntp 支持 PPS 規(guī)范,給 ntp 提供了本地時(shí)間源,以提供更高的精度。查看下邊列出的鏈接來(lái)獲取更多配置信息。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Centos6 網(wǎng)絡(luò)配置的實(shí)例詳解
這篇文章主要介紹了Centos6 網(wǎng)絡(luò)配置的實(shí)例詳解的相關(guān)資料,希望通過(guò)本文大家能夠掌握配置網(wǎng)絡(luò)的知識(shí),需要的朋友可以參考下2017-09-09linux進(jìn)行硬盤(pán)分區(qū)掛載的實(shí)現(xiàn)方法
這篇文章主要介紹了linux進(jìn)行硬盤(pán)分區(qū)掛載的實(shí)現(xiàn)方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-07-07linux下實(shí)現(xiàn)web數(shù)據(jù)同步的四種方式(性能比較)
這篇文章主要介紹了linux下常用的四種web數(shù)據(jù)同步方法,并且說(shuō)明了每個(gè)方法的功能與優(yōu)勢(shì),需要的朋友可以參考下2013-09-09linux下用cron定時(shí)執(zhí)行任務(wù)的方法
呵呵,比較有用,網(wǎng)上摘抄的。留著備用吧。2008-06-06Linux Shell里面生成隨機(jī)數(shù)的一些思路分析
這篇文章主要介紹了Linux Shell里面生成隨機(jī)數(shù)的一些思路分析,需要的朋友可以參考下2016-07-07Centos7.0安裝ceph(JEWEL)及以上版本的實(shí)例解析
這篇文章主要介紹了Centos7.0安裝ceph(JEWEL)及以上版本的實(shí)例解析,需要的朋友可以參考下2018-02-02