自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

在Linux上使用NTP保持精確的時(shí)間

系統(tǒng) Linux
如何保持正確的時(shí)間,如何使用 NTP 和 systemd 讓你的計(jì)算機(jī)在不濫用時(shí)間服務(wù)器的前提下保持同步。

[[223006]]

如何保持正確的時(shí)間,如何使用 NTP 和 systemd 讓你的計(jì)算機(jī)在不濫用時(shí)間服務(wù)器的前提下保持同步。

 

它的時(shí)間是多少?

讓 Linux 來(lái)告訴你時(shí)間的時(shí)候,它是很奇怪的。你可能認(rèn)為是使用 time 命令來(lái)告訴你時(shí)間,其實(shí)并不是,因?yàn)?time 只是一個(gè)測(cè)量一個(gè)進(jìn)程運(yùn)行了多少時(shí)間的計(jì)時(shí)器。為得到時(shí)間,你需要運(yùn)行的是 date 命令,你想查看更多的日期,你可以運(yùn)行 cal 命令。文件上的時(shí)間戳也是一個(gè)容易混淆的地方,因?yàn)楦鶕?jù)你的發(fā)行版默認(rèn)情況不同,它一般有兩種不同的顯示方法。下面是來(lái)自 Ubuntu 16.04 LTS 的示例:

  1. $ ls -l
  2. drwxrwxr-x 5 carla carla 4096 Mar 27 2017 stuff
  3. drwxrwxr-x 2 carla carla 4096 Dec 8 11:32 things
  4. -rw-rw-r-- 1 carla carla 626052 Nov 21 12:07 fatpdf.pdf
  5. -rw-rw-r-- 1 carla carla 2781 Apr 18 2017 oddlots.txt

有些顯示年,有些顯示時(shí)間,這樣的方式讓你的文件更混亂。GNU 默認(rèn)的情況是,如果你的文件在六個(gè)月以內(nèi),則顯示時(shí)間而不是年。我想這樣做可能是有原因的。如果你的 Linux 是這樣的,嘗試用 ls -l --time-style=long-iso 命令,讓時(shí)間戳用同一種方式去顯示,按字母順序排序。請(qǐng)查閱 如何更改 Linux 的日期和時(shí)間:簡(jiǎn)單的命令 去學(xué)習(xí) Linux 上管理時(shí)間的各種方法。

 

檢查當(dāng)前設(shè)置

NTP —— 網(wǎng)絡(luò)時(shí)間協(xié)議,它是保持計(jì)算機(jī)正確時(shí)間的老式方法。ntpd 是 NTP 守護(hù)程序,它通過(guò)周期性地查詢公共時(shí)間服務(wù)器來(lái)按需調(diào)整你的計(jì)算機(jī)時(shí)間。它是一個(gè)簡(jiǎn)單的、輕量級(jí)的協(xié)議,使用它的基本功能時(shí)設(shè)置非常容易。systemd 通過(guò)使用 systemd-timesyncd.service 已經(jīng)越俎代庖地 “干了 NTP 的活”,它可以用作 ntpd 的客戶端。

在我們開(kāi)始與 NTP “打交道” 之前,先花一些時(shí)間來(lái)了檢查一下當(dāng)前的時(shí)間設(shè)置是否正確。

你的系統(tǒng)上(至少)有兩個(gè)時(shí)鐘:系統(tǒng)時(shí)間 —— 它由 Linux 內(nèi)核管理,第二個(gè)是你的主板上的硬件時(shí)鐘,它也稱為實(shí)時(shí)時(shí)鐘(RTC)。當(dāng)你進(jìn)入系統(tǒng)的 BIOS 時(shí),你可以看到你的硬件時(shí)鐘的時(shí)間,你也可以去改變它的設(shè)置。當(dāng)你安裝一個(gè)新的 Linux 時(shí),在一些圖形化的時(shí)間管理器中,你會(huì)被詢問(wèn)是否設(shè)置你的 RTC 為 UTC(世界標(biāo)準(zhǔn)時(shí)間Coordinated Universal Time)時(shí)區(qū),因?yàn)樗械臅r(shí)區(qū)和夏令時(shí)都是基于 UTC 的。你可以使用 hwclock 命令去檢查:

  1. $ sudo hwclock --debug
  2. hwclock from util-linux 2.27.1
  3. Using the /dev interface to the clock.
  4. Hardware clock is on UTC time
  5. Assuming hardware clock is kept in UTC time.
  6. Waiting for clock tick...
  7. ...got clock tick
  8. Time read from Hardware Clock: 2018/01/22 22:14:31
  9. Hw clock time : 2018/01/22 22:14:31 = 1516659271 seconds since 1969
  10. Time since last adjustment is 1516659271 seconds
  11. Calculated Hardware Clock drift is 0.000000 seconds
  12. Mon 22 Jan 2018 02:14:30 PM PST .202760 seconds

Hardware clock is on UTC time 表明了你的計(jì)算機(jī)的 RTC 是使用 UTC 時(shí)間的,雖然它把該時(shí)間轉(zhuǎn)換為你的本地時(shí)間。如果它被設(shè)置為本地時(shí)間,它將顯示 Hardware clock is on local time。

你應(yīng)該有一個(gè) /etc/adjtime 文件。如果沒(méi)有的話,使用如下命令同步你的 RTC 為系統(tǒng)時(shí)間,

  1. $ sudo hwclock -w

這個(gè)命令將生成該文件,內(nèi)容看起來(lái)類(lèi)似如下:

  1. $ cat /etc/adjtime
  2. 0.000000 1516661953 0.000000
  3. 1516661953
  4. UTC

新發(fā)明的 systemd 方式是去運(yùn)行 timedatectl 命令,運(yùn)行它不需要 root 權(quán)限:

  1. $ timedatectl
  2. Local time: Mon 2018-01-22 14:17:51 PST
  3. Universal time: Mon 2018-01-22 22:17:51 UTC
  4. RTC time: Mon 2018-01-22 22:17:51
  5. Time zone: America/Los_Angeles (PST, -0800)
  6. Network time on: yes
  7. NTP synchronized: yes
  8. RTC in local TZ: no

RTC in local TZ: no 表明它使用 UTC 時(shí)間。那么怎么改成使用本地時(shí)間?這里有許多種方法可以做到。最簡(jiǎn)單的方法是使用一個(gè)圖形配置工具,比如像 openSUSE 中的 YaST。你也可使用 timedatectl

  1. $ timedatectl set-local-rtc 0

或者編輯 /etc/adjtime,將 UTC 替換為 LOCAL。

 

systemd-timesyncd 客戶端

現(xiàn)在,我已經(jīng)累了,但是我們剛到非常精彩的部分。誰(shuí)能想到計(jì)時(shí)如此復(fù)雜?我們甚至還沒(méi)有了解到它的皮毛;閱讀 man 8 hwclock 去了解你的計(jì)算機(jī)如何保持時(shí)間的詳細(xì)內(nèi)容。

systemd 提供了 systemd-timesyncd.service 客戶端,它可以查詢遠(yuǎn)程時(shí)間服務(wù)器并調(diào)整你的本地系統(tǒng)時(shí)間。在 /etc/systemd/timesyncd.conf 中配置你的(時(shí)間)服務(wù)器。大多數(shù) Linux 發(fā)行版都提供了一個(gè)默認(rèn)配置,它指向他們維護(hù)的時(shí)間服務(wù)器上,比如,以下是 Fedora 的:

  1. [Time]
  2. #NTP=
  3. #FallbackNTP=0.fedora.pool.ntp.org 1.fedora.pool.ntp.org

你可以輸入你希望使用的其它時(shí)間服務(wù)器,比如你自己的本地 NTP 服務(wù)器,在 NTP= 行上輸入一個(gè)以空格分隔的服務(wù)器列表。(別忘了取消這一行的注釋?zhuān)?code>NTP= 行上的任何內(nèi)容都將覆蓋掉 FallbackNTP 行上的配置項(xiàng)。

如果你不想使用 systemd 呢?那么,你將需要 NTP 就行。

 

配置 NTP 服務(wù)器和客戶端

配置你自己的局域網(wǎng) NTP 服務(wù)器是一個(gè)非常好的實(shí)踐,這樣你的網(wǎng)內(nèi)計(jì)算機(jī)就不需要不停查詢公共 NTP 服務(wù)器。在大多數(shù) Linux 上的 NTP 都來(lái)自 ntp 包,它們大多都提供 /etc/ntp.conf 文件去配置時(shí)間服務(wù)器。查閱 NTP 時(shí)間服務(wù)器池 去找到你所在的區(qū)域的合適的 NTP 服務(wù)器池。然后在你的 /etc/ntp.conf 中輸入 4 - 5 個(gè)服務(wù)器,每個(gè)服務(wù)器用單獨(dú)的一行:

  1. driftfile /var/ntp.drift
  2. logfile /var/log/ntp.log
  3. server 0.europe.pool.ntp.org
  4. server 1.europe.pool.ntp.org
  5. server 2.europe.pool.ntp.org
  6. server 3.europe.pool.ntp.org

driftfile 告訴 ntpd 它需要保存用于啟動(dòng)時(shí)使用時(shí)間服務(wù)器快速同步你的系統(tǒng)時(shí)鐘的信息。而日志也將保存在他們自己指定的目錄中,而不是轉(zhuǎn)儲(chǔ)到 syslog 中。如果你的 Linux 發(fā)行版默認(rèn)提供了這些文件,請(qǐng)使用它們。

現(xiàn)在去啟動(dòng)守護(hù)程序;在大多數(shù)主流的 Linux 中它的命令是 sudo systemctl start ntpd。讓它運(yùn)行幾分鐘之后,我們?cè)俅稳z查它的狀態(tài):

  1. $ ntpq -p
  2. remote refid st t when poll reach delay offset jitter
  3. ==============================================================
  4. +dev.smatwebdesi 192.168.194.89 3 u 25 64 37 92.456 -6.395 18.530
  5. *chl.la 127.67.113.92 2 u 23 64 37 75.175 8.820 8.230
  6. +four0.fairy.mat 35.73.197.144 2 u 22 64 37 116.272 -10.033 40.151
  7. -195.21.152.161 195.66.241.2 2 u 27 64 37 107.559 1.822 27.346

我不知道這些內(nèi)容是什么意思,但重要的是,你的守護(hù)程序已經(jīng)與時(shí)間服務(wù)器開(kāi)始對(duì)話了,而這正是我們所需要的。你可以去運(yùn)行 sudo systemctl enable ntpd 命令,永久啟用它。如果你的 Linux 沒(méi)有使用 systemd,那么,給你留下的家庭作業(yè)就是找出如何去運(yùn)行 ntpd。

現(xiàn)在,你可以在你的局域網(wǎng)中的其它計(jì)算機(jī)上設(shè)置 systemd-timesyncd,這樣它們就可以使用你的本地 NTP 服務(wù)器了,或者,在它們上面安裝 NTP,然后在它們的 /etc/ntp.conf 上輸入你的本地 NTP 服務(wù)器。

NTP 服務(wù)器會(huì)受到攻擊,而且需求在不斷增加。你可以通過(guò)運(yùn)行你自己的公共 NTP 服務(wù)器來(lái)提供幫助。下周我們將學(xué)習(xí)如何運(yùn)行你自己的公共服務(wù)器。 

責(zé)任編輯:龐桂玉 來(lái)源: Linux中國(guó)
相關(guān)推薦

2022-01-27 08:53:31

LinuxNTP同步

2019-12-05 10:30:17

LinuxMultitail

2011-03-22 10:06:27

LinuxZFS

2021-05-10 07:30:07

Linux統(tǒng)計(jì)程序

2021-08-11 11:02:17

Linuxtime命令

2021-05-11 11:52:23

Linuxtime命令

2019-12-09 14:50:44

LinuxWindow Make桌面

2019-12-20 08:50:21

LinuxKsnip截圖

2018-02-26 08:14:20

LinuxDocker容器

2018-11-06 09:24:55

LinuxLutries命令

2021-08-19 18:28:22

FedoraLinuxOpenCV

2020-04-10 09:56:12

at命令Linux安排任務(wù)

2020-10-26 12:30:23

LinuxyumZFS

2018-09-13 08:00:00

LinuxNetplan網(wǎng)絡(luò)配置

2022-05-25 16:38:42

sudoLinuxroot 賬戶

2020-05-09 12:01:40

Linux開(kāi)源軟件SDN

2023-10-15 14:53:22

Arch LinuxYay

2022-07-26 10:13:11

LinuxGNOMERhythmbox

2021-07-12 17:45:25

LinuxTealdeer手冊(cè)頁(yè)

2017-01-09 09:20:07

Ubuntu NTP同步
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)