1. linux 時間同步
在Linux系統中存在兩個時鍾時間,分別是
硬體時鍾是指的在主板上的時鍾設備,也就是通常可以在BIOS畫面設置的時鍾,即使關機狀態也可以計算時間。
而系統時鍾則是指Kernel中的時鍾,其值是由1970年1月1日00:00:00 UTC時間至當前時間所經歷的秒數總和。當Linux啟動的時候,系統時鍾會讀取硬體時鍾的設定,之後系統時鍾獨立運作。長時間運行兩者可能將會產生誤差。另外所有的Linux相關指令都是讀取系統時鍾指定的,如date。
我們這里討論的是系統時間。
NTP,網路時間協議,使用 123/udp 埠進行網路時鍾同步;NTP 是仍在使用中的最古老的網路傳輸協議之一(1985 年前開始)。
以前Linux時間同步基本是使用 ntpdate 和 ntpd 這兩個工具實現的,但是這兩個工具已經很古老了。
【注】ntpdate和ntpd是互斥的,兩者不能同時使用。ntpd是步進式平滑的逐漸調整時間,而ntpdate是斷點式更新時間。
RHEL/CentOS 7.x 已經將 chrony 作為默認時間同步工具了。
其他Linux (如 ubuntu) 使用 systemd-timesyncd 服務。
chrony 是 RedHat 開發的,它是網路時間協議(NTP)的另一種實現;
RHEL/CentOS 7.x 的默認時間同步工具;
chrony 可以同時做為 ntp 服務的客戶端和服務端;安裝完後有兩個程序 chronyd、chronyc:
chronyd 是一個 daemon 守護進程,chronyc 是用來監控 chronyd 性能和配置參數的命令行工具。
系統版本:CentOS 7.5
chrony_server(relay):10.0.0.4
chrony_client:10.0.0.5
Edit file /etc/chrony.conf
默認已經啟動,不需要調整
example:
配置 chrony
edit file: /etc/chrony.conf
再次用chronyc 命令檢查,比較它與chronyd server的差異
systemd-timesyncd 是一個用於跨網路同步系統時鍾的守護服務。它實現了一個 SNTP 客戶端,但更輕量級,更集成systemd。
systemd-timesyncd 啟動時會讀取 /etc/systemd/timesyncd.conf 配置文件,內容如下:
你可以輸入你希望使用的其它時間伺服器,比如你自己的本地 NTP 伺服器,在 NTP= 行上輸入一個以空格分隔的伺服器列表。
如果伺服器可以直接連接internet,不用修改默認配置;如果在內網,需要單獨指定。
在最新的 Ubuntu 版本中,timedatectl 替代了老舊的 ntpdate。默認情況下,timedatectl 在系統啟動的時候會立刻同步時間,並在稍後網路連接激活後通過 socket 再次檢查一次。
timesyncd 替代了 ntpd 的客戶端的部分。默認情況下 timesyncd 會定期檢測並同步時間。它還會在本地存儲更新的時間,以便在系統重啟時做時間單步調整。
通過 timedatectl 和 timesyncd 設置的當前時間狀態和時間配置,可以使用 timedatectl status 命令來進行確認。
由於 timedatectl 的存在,各發行版已經棄用了 ntpdate,默認不再進行安裝。
timedatectl
timedatectl status ,查看時間同步狀態;
timedatectl set-ntp true ,開啟網路時間同步;
timedatectl set-timezone ZONE ,設置時區。
NTP synchronized: yes 表示時間是同步狀態。
查看服務狀態以及從哪個ntp server同步時間。
NTP:軟體層面實現,成本低。同步精度10ms左右。
PTP:需要網路介面具備在物理層提供時間戳的功能,同步精度優於100ns,區域網的節點需要使用支持PTP功能的交換機。區域網網路接點不支持PTP的話,只能同不到us,而且受網路背景流量影響。
2. linux硬體時間與系統時間同步
方法/步驟
打開Ubuntu虛擬機,在桌面空白處右鍵 -- 打開終端。
3. 如何取消linux時間同步
方法步驟如下:
1、首先打開計算機,在計算機內敲擊win+r打開運行界面,然後在界面內輸入cmd。
4. Linux下使用ntpdate進行時間同步
如題,我們可以使用ntpdate進行時間同步,來確保我們的時間和北京時間一致。
若上面的時間伺服器不可用,也可以選擇以下伺服器同步時間
5. linux系統如何設置時間同步
linux自帶了ntp服務
--
/etc/init.d/ntpd,這個服務不僅可以設置讓本機和某台/某些機器做時間同步,他本身還可以扮演一個time server的角色,讓其他機器和他同步時間。
配置文件就是/etc/ntp.conf。
為了測試,設置讓node2
--
192.168.1.102和node1
--
192.168.1.101做時間同步。
第一步,
node1做time
server,node1本身不和其他機器時間同步,就是取本地時間。
所以,先把node1機器的時間調准了:
[root@node1
~]date
-s
08/03/2011
[root@node1
~]date
-s 11:12:00
[root@node1
~]clock
-w
[root@node1
~]hwclock
--systohc
後兩個命令是把設置的時間寫到硬體時間中去(也就是cmos裡面的時間)。
第二步,
然後將node1配置成一個time
server,修改/etc/ntp.conf,
[root@node1
~]vi
/etc/ntp.conf
其他的配置不怎麼需要改,只需要關注restrict的配置:
1.
注釋掉原來的restrict
default
ignore這一行,這一行本身是不響應任何的ntp更新請求,其實也就是禁用了本機的ntp
server的功能,所以需要注釋掉。
2.
加入:restrict
192.168.1.0
mask
255.255.255.0
--
讓192.168.1.0/24網段上的機器能和本機做時間同步
3.
這樣就可以了,記得下面的:
server
127.127.1.0
#
local
clock
fudge
127.127.1.0
stratum
10
這兩行需要,這是讓本機的ntpd和本地硬體時間同步。
當然,我們也可以添加server
xxx.xxx.xxx.xxx,讓他和其他的time
server時間同步。
4.
/etc/init.d/ntpd
restart
5.
chkconfig
ntpd
on
6.
修改iptables配置,將tcp和udp
123埠開放,這是ntp需要的埠,在/etc/services中可以查到這個埠。
第三步,
這樣node1就成為一台time
server了,現在我們配置node2這台機器,也是修改/etc/ntp.conf
,
[root@node2
~]vi
/etc/ntp.conf
1.
restrict
default
ignore這行保留為注釋狀態,因為sales不需要做time
server
2.
注釋掉server
127.127.1.0,
fudge
127.127.1.0
stratum
10這兩行,因為這台機器不需要和本地硬體時鍾同步了。
3.
加入server
192.168.1.101這行,和node1機器同步。
這樣就ok了。看看時間,已經和node1同步了。往後默認配置好像是5分鍾和time
server同步一次。ntpdate命令是顯式的和某台機器做時間同步,以前將ntpdate放到crontab中定期同步也是可以的,但是既然ntpd本身就可以做這個時間
第四步,將ntpdate放到crontab中定期步也是可以的
[root@node2
~]#vi
ntpupdate.sh
/usr/sbin/ntpdate
192.168.1.101
[root@node2
~]#chmod
755
ntpupdate.sh
[root@node2
~]#crontab
-e
*/1
*
*
*
*
/root/ntpupdate.sh
[root@node2
~]#/etc/init.d/crond
restart
6. linux系統間如何時間同步
linux停止ntp服務即可關閉時間同步。
①關閉ntp服務(臨時設置重啟後自動開啟)
service ntpd stop②設置永久關閉ntp服務(重啟後也是關閉的)
chkconfig ntpd off