Linux下的時間同步,以及ntp時間服務器配置流程
- 概論
- 常見時間操作命令
- Linux下的系統時間配置
- Linux硬件的時間的設置
- 系統時間和硬件時間的同步
- NTP服務器時間的同步
- NTP服務的安裝
- NTP的時間同步
- 定時任務里的時間同步
- 配置文件同步時間
概論
但在Linux下,系統時間和硬件時間并不會自動同步。在Linux運行過程中,系統時間和硬件時間以異步的方式運行,互不干擾。硬件時間的運行,是靠BIOS電池來維持,而系統時間,是用CPU來維持的。在系統開機的時候,會自動從BIOS中取得硬件時間,設置為系統時間。
常見時間操作命令
命令 | 功能 |
---|---|
date命令 | 查看系統時間,設置時間 |
hwclock命令 | 查看硬件時間,可以讓系統時間和硬件時間的同步 |
ntpdate命令 | 可以讓不同機器之間同步時間 |
Linux下的系統時間配置
date 命令有多種時間格式可以配置,查看date --help可嘗試配置信息
如下:
[root@localhost ~]# date //查看系統時間
Sun Feb 25 17:06:00 CST 2024
[root@localhost ~]#
[root@localhost ~]#
[root@localhost ~]# date -s "20240225 19:06:00" //修改系統時間(yyyymmdd hh:mm:ss)
Sun Feb 25 19:06:00 CST 2024
Linux硬件的時間的設置
[root@localhost ~]# hwclock //查看硬件時間(hwclock --show 或hwclock -r也可以)
Sun Feb 25 2024 7:06:59 PM CST -0.10265 seconds
[root@localhost ~]#
[root@localhost ~]#
[root@localhost ~]# hwclock --set --date "20240225 20:00:00"
[root@localhost ~]# hwclock
Sun 25 Feb 2024 08:00:00 PM CST -0.936520 seconds
系統時間和硬件時間的同步
[root@localhost ~]# hwclock --systohc //以系統時間同步硬件時間
[root@localhost ~]# hwclock -w //以系統時間同步硬件時間
[root@localhost ~]#
[root@localhost ~]#
[root@localhost ~]# hwclock --hctosys //以硬件時間同步系統時間
[root@localhost ~]# hwclock -s
NTP服務器時間的同步
主機長時間運行會導致時間偏差,有必要進行進行時間同步工作。Linux系統下,一般使用ntp服務器來同步不同機器的時間。一臺機器,可以同時是ntp服務端和ntp客戶端。通常可以使用ntpdate命令或者ntpd服務來同步時間。
NTP服務的安裝
[root@localhost ~]# yum install -y ntp //安裝ntp服務
[root@localhost ~]# systemctl start ntpd //啟動ntp服務
[root@localhost ~]# systemctl enable ntpd //將ntp服務加入開機自啟動
NTP的時間同步
命令格式:ntpdate [NTP服務器IP或主機名]
[root@localhost ~]# ntpdate 192.168.1.1
[root@localhost ~]# ntpdate ntpseerver.com
定時任務里的時間同步
通常我們會在定時任務里添加相關命令來實現定期同步時間,在crontab中添加:
每天的12點同步時間
0 12 * * * /usr/sbin/ntpdate 192.168.1.1
配置文件同步時間
-
打開/etc/ntp.conf,該文件為ntp服務的配置文件,通過操作該配置文件可以,進行相關的時間同步操作。
-
在restrict添加授時服務網址、網段,即可接入NTP的地址。
在server添加NTP時鐘源,此處添加的阿里云的NTP服務地址。若使用本地時鐘作為時間源,只須保證本地時鐘源IP正確即可。 -
如果server中存在操作系統默認的NTP時鐘源(0.centos.pool.ntp.org、0.ubuntu.pool.n等),需將其注釋掉。
server IP 后可接關鍵字iburst、prefer、minpoll、maxpoll等:
iburst:表示在啟動時快速同步時間。通常情況下,NTP客戶端會與服務器建立連接并等待一段時間才能同步時間。但是,如果使用"iburst"關鍵字,客戶端將在啟動時發送多個NTP請求到服務器,以加快同步時間的速度。
prefer:表示將此服務器設置為首選服務器,如果多個服務器都可用,則NTP客戶端將優先選擇被標記為"prefer"的服務器進行時間同步。
restrict default nomodify notrap noquery # 關閉所有的 NTP 要求封包
restrict 127.0.0.1 #這是允許本機查詢
restrict 192.168.1.1 mask 255.255.255.0 nomodify
#在192.168.0.1/24網段內的服務器就可以通過這臺NTP Server進行時間同步了 # 要設定上層主機主要以 server 這個參數來設定,語法為:
# server [IP|HOST Name] [prefer]
server 1.pool.ntp.org prefer
#其他設置值,以系統默認值即可
server 127.127.1.0 # local clock
fudge 127.127.1.0 stratum 10