日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

Linux 时间同步systemd-timesyncd介绍

發布時間:2024/1/1 linux 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux 时间同步systemd-timesyncd介绍 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在Linux系統中存在兩個時鐘時間,分別是

硬件時鐘RTC(Real Time Clock)
系統時鐘(System Clock)
硬件時鐘是指的在主板上的時鐘設備,也就是通常可以在BIOS畫面設置的時鐘,即使關機狀態也可以計算時間。

而系統時鐘則是指Kernel中的時鐘,其值是由1970年1月1日00:00:00 UTC時間至當前時間所經歷的秒數總和。當Linux啟動的時候,系統時鐘會讀取硬件時鐘的設定,之后系統時鐘獨立運作。長時間運行兩者可能將會產生誤差。另外所有的Linux相關指令都是讀取系統時鐘指定的,如date。

我們這里討論的是系統時間。

NTP
NTP,網絡時間協議,使用 123/udp 端口進行網絡時鐘同步;NTP 是仍在使用中的最古老的網絡傳輸協議之一(1985 年前開始)。

NTP軟件的實現方法:
1、以前Linux時間同步基本是使用 ntpdate 和 ntpd 這兩個工具實現的,但是這兩個工具已經很古老了。后面的文章會單獨介紹
注:ntpdate和ntpd是互斥的,兩者不能同時使用。ntpd是步進式平滑的逐漸調整時間,而ntpdate是斷點式更新時間。

2、RHEL/CentOS 7.x 已經將 chrony 作為默認時間同步工具了。后面的文章會單獨介紹

3、其他Linux (如 ubuntu,debian,openSUSE) 使用 systemd-timesyncd 服務。下面主要針對這個進行介紹
注:systemd-timesyncd是斷點式更新時間,也就是時間不同立即更新,這樣會對某些服務產生影響,所以在生產環境盡量不要用,在桌面環境或者是系統剛開機時來進行時間同步還是很好的。timesyncd 替代了 ntpd 的客戶端的部分。默認情況下 timesyncd 會定期檢測并同步時間。它還會在本地存儲更新的時間,以便在系統重啟時做時間單步調整。如果是虛擬機環境,應該把與主機時間同步功能關閉后在啟用systemd-timesyncd,否則可能會有問題,systemd-timesyncd只能作為客戶端,不能作為NTP服務器,要成為NTP服務器,可以安裝chrony、ntpd,或者open-ntp。推薦chrony。

一、systemd-timesyncd 客戶端
systemd 提供了 systemd-timesyncd 客戶端,它是一個用于跨網絡同步系統時鐘的守護服務。它實現了一個 SNTP 客戶端。與NTP的復雜實現相比,這個服務簡單的多,它只專注于從遠程服務器查詢然后同步到本地時鐘。在/etc/systemd/timesyncd.conf 中配置你的(時間)服務器。大多數 Linux 發行版都提供了一個默認配置,它指向發行版維護的時間服務器上。systemd-timesyncd只會更改系統時間不會更改硬件時間,可以通過hwclock -w命令將系統時間同步到硬件時間

1、通過timedatectl命令查看時鐘是否與互聯網同步。只需運行:

OpenSUSE:~ # timedatectl      ##openSUSE15.1下查看
Local time: Tue 2020-05-05 10:38:53 CST      ##本地時間
Universal time: Tue 2020-05-05 02:38:53 UTC    ##協調世界時
RTC time: Tue 2020-05-05 02:38:51        ##硬件時間
Time zone: Asia/Shanghai (CST, +0800)      ##時區,我這里為東8區
Network time on: yes       ##NTP時間同步是否開啟,yes表示是
NTP synchronized: yes      ##如果和遠程NTP服務器成功同步,顯示為yes

RTC in local TZ: no no表示硬件時鐘設置為協調世界時(UTC),yes表示硬件時鐘設置為本地時間

root@HP:~# timedatectl      ##Ubuntu18.04下查看,下面的說明都以Ubuntu系統為例說明
Local time: 二 2020-05-05 14:52:52 CST
Universal time: 二 2020-05-05 06:52:52 UTC
RTC time: 二 2020-05-05 06:52:52
Time zone: Asia/Shanghai (CST, +0800)
System clock synchronized: yes        ##如果和遠程NTP服務器成功同步,顯示為yes
systemd-timesyncd.service active: yes    ##NTP時間同步是否開啟,yes表示是,systemd-timesyncd服務為活動也就是開啟了NTP時間同步

RTC in local TZ: no

如上所示,timedatectl 命令顯示本地時間、世界時、時區以及系統時鐘是否與互聯網服務器同步,以及 systemd-timesyncd.service 是處于活動狀態還是非活動狀態。

2、如果時鐘不同步,你會看到下面中顯示的 System clock synchronized: no。

root@HP:~# timedatectl
Local time: 二 2020-05-05 15:22:06 CST
Universal time: 二 2020-05-05 07:22:06 UTC
RTC time: 二 2020-05-05 07:22:06
Time zone: Asia/Shanghai (CST, +0800)
System clock synchronized: no
systemd-timesyncd.service active: yes

RTC in local TZ: no

時間同步已禁用。

注意:上面的截圖是舊截圖。這就是你看到不同日期的原因。

3、如果你看到 System clock synchronized: 值設置為 no,那么 timesyncd 服務可能處于非活動狀態。因此,只需重啟服務并看下是否正常。

root@HP:~# systemctl restart systemd-timesyncd.service

4、現在檢查 timesyncd 服務狀態:

root@HP:~# systemctl status systemd-timesyncd.service
● systemd-timesyncd.service - Network Time Synchronization
Loaded: loaded (/lib/systemd/system/systemd-timesyncd.service; enabled; vendor preset
Active: active (running) since Tue 2020-05-05 15:14:18 CST; 5h 6min ago
Docs: man:systemd-timesyncd.service(8)
Main PID: 5973 (systemd-timesyn)
Status: “Synchronized to time server [2001:67c:1560:8003::c8]:123 (ntp.ubuntu.com).”      ##這里很重要這里顯示了同步的NTP服務器及端口號
Tasks: 2 (limit: 4915)
CGroup: /system.slice/systemd-timesyncd.service
└─5973 /lib/systemd/systemd-timesyncd

5月 05 15:14:17 HP systemd[1]: Starting Network Time Synchronization…
5月 05 15:14:18 HP systemd[1]: Started Network Time Synchronization.
5月 05 15:14:18 HP systemd-timesyncd[5973]: Synchronized to time server [2001:67c:1560:8
5月 05 20:10:48 HP systemd-timesyncd[5973]: Synchronized to time server [2001:67c:1560:8

lines 1-14/14 (END)

如果此服務已啟用并處于活動狀態,那么系統時鐘應與互聯網時間服務器同步。

可以使用timedatectl命令驗證是否啟用了時間同步:

5、如果仍然不起作用,請運行以下命令以啟用時間同步:

root@HP:~# timedatectl set-ntp true

現在,你的系統時鐘將與互聯網時間服務器同步

6、要禁用NTP時間同步,在終端鍵入以下命令。

root@HP:~# timedatectl set-ntp false

如果要手工修改時間至某個時間就必須將該項設置為false,否則時間設置不會生效

二、systemd-timesyncd 配置文件

systemd-timesyncd 啟動時會讀取 /etc/systemd/timesyncd.conf 配置文件,內容如下:

root@HP:~# vi /etc/systemd/timesyncd.conf
[Time]
#NTP=
#FallbackNTP=ntp.ubuntu.com
#RootDistanceMaxSec=5
#PollIntervalMinSec=32

#PollIntervalMaxSec=2048

默認雖然上面的選項都處于注釋狀態,但是systemd-timesyncd還是會去默認的NTP服務器進行同步,如果要更改NTP服務器請修改上面的選項,選項解釋如下:

NTP=
一個空格分隔的NTP服務器列表, 可以使用主機名,也可以使用IP地址。在運行時, 此處設置的列表將與 systemd-networkd.service中已配置的NTP服務器列表合并在一起。 systemd-timesyncd 將會依次嘗試列表中的每個NTP服務器, 直到同步成功為止。 如果為此選項設置一個空字符串, 那么表示清空所有此選項先前已設置的NTP服務器列表。 此選項的默認值為空。

FallbackNTP=
一個空格分隔的NTP服務器列表,用作備用NTP服務器。 可以使用主機名,也可以使用IP地址。 如果所有已配置在 systemd-networkd.service中的NTP服務器以及上述 NTP= 中設置的NTP服務器都嘗試失敗, 那么將嘗試此處設置的備用NTP服務器。 如果為此選項設置一個空字符串, 那么表示清空所有此選項先前已設置的NTP服務器列表。 若未設置此選項, 則使用編譯時設置的默認備用NTP服務器。

RootDistanceMaxSec=
最大可接受的"root distance"秒數(最大誤差)。 默認值為 5 秒。

PollIntervalMinSec=, PollIntervalMaxSec=
NTP消息的 最小/最大輪詢間隔秒數。 PollIntervalMinSec= 必須不小于 16 秒。 PollIntervalMaxSec= 必須大于 PollIntervalMinSec= 。 PollIntervalMinSec= 默認為 32 秒, PollIntervalMaxSec= 默認為 2048 秒。

舉例將同步的NTP服務器設置成國內比較好用的

root@HP:~# vi /etc/systemd/timesyncd.conf
[Time]

NTP=ntp.ntsc.ac.cn cn.ntp.org.cn     ##只設置NTP這行,其它的不必,增加2個NTP服務器,中間用空格隔開

重啟systemd-timesyncd服務生效

root@HP:~# systemctl restart systemd-timesyncd.service

再次查看服務狀態

root@HP:~# systemctl status systemd-timesyncd.service
● systemd-timesyncd.service - Network Time Synchronization
Loaded: loaded (/lib/systemd/system/systemd-timesyncd.service; enabled; vendor preset
Active: active (running) since Tue 2020-05-05 21:56:35 CST; 3s ago
Docs: man:systemd-timesyncd.service(8)
Main PID: 1578 (systemd-timesyn)
Status: “Synchronized to time server 114.118.7.161:123 (ntp.ntsc.ac.cn).”      ##這里已經更改成功
Tasks: 2 (limit: 4915)
CGroup: /system.slice/systemd-timesyncd.service
└─1578 /lib/systemd/systemd-timesyncd

5月 05 21:56:35 HP systemd[1]: Starting Network Time Synchronization…
5月 05 21:56:35 HP systemd[1]: Started Network Time Synchronization.
5月 05 21:56:35 HP systemd-timesyncd[1578]: Synchronized to time server 114.118.7.161:12
root@HP:~#

總結

以上是生活随笔為你收集整理的Linux 时间同步systemd-timesyncd介绍的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。