時間服務器:
NTP(Network Time Protocol,網絡時間協議)是用來使用網絡中的各個計算機時間同步的一種協議,NTP服務器就是利用NTP協議提供時間同步服務的。
一、環境准備:
1、配置計算機IP:
Centos 7系統上配置NTP時鍾服務器:
時鍾服務器:192.168.13.131
客戶端同步服務器:192.168.13.132
2、查看兩台機器是否安裝NTP包:
[root@ntp-server ~]# rpm -qa | grep ntp
ntpdate-4.2.6p5-25.el7.centos.x86_64
ntp-4.2.6p5-25.el7.centos.x86_64
這樣輸出表明已經安裝好,如果沒有可以使用“yum -y install ntp ntpdate”進行安裝
3、查看當前服務器時區&列出時區並設置時區:
[root@ntp-server ~]# timedatectl
[root@ntp-server ~]# timedatectl list-timezones
[root@ntp-server ~]# timedatectl set-timezone Asia/Shanghai
4、時間時區概念理解:
GMT UTC CST DST
UTC:整個地球分為二十四個時區,每個時區都有自己的本地時間,在國際無線電通信場合,為了統一起見,使用一個統一的時間,稱為通用協調時。
GMT:格林威治標准時間:指位於英國倫敦郊區的皇家格林尼治天文台的標准時間,因為本初子午線被定義在通過那里的經線(UTC與GMT時間基本相同)
CST:中國標准時間
GMT+8=UTC+8=CST
DST:夏令時指在夏天太陽升起的比較早時,將時間撥快一小時,以提早日光時間(中國不適用)
5、使用NTP公共服務器池同步的服務器時間(http://www.pool.ntp.org)
6、NTP配置文件
修改NTP配置文件:
vim /etc/ntp.conf
添加NTP服務的日志目錄:
4 driftfile /var/lib/ntp/drift
5
6 logfile /var/log/ntpd.log
設置授權198.168.13.0/24網段上的所有機器都可以從這台機器上查詢和同步時間。
15 restrict 127.0.0.1
16 restrict ::1
17 restrict 192.168.13.0 mask 255.255.255.0 nomodify notrap
設置時間服務器列表:
24 server 0.centos.pool.ntp.org iburst(系統默認的,可以注釋)
25 server 1.centos.pool.ntp.org iburst
26 server 2.centos.pool.ntp.org iburst
27 server 3.centos.pool.ntp.org iburst
當外部時間不可用時,使用本地時間:
29 server 192.168.13.131 iburst(無上層時間時配置為:server 127.127.1.0)
30 fudge 127.127.1.0 stratum 11
設置允許上層時間服務器主動修改本機時間:
37 #manycastclient 239.255.254.254 autokey # manycast client
38
39 restrict 0.centos.pool.ntp.org nomodify notrap noquery
40 restrict 1.centos.pool.ntp.org nomodify notrap noquery
41 restrict 2.centos.pool.ntp.org nomodify notrap noquery
42 restrict 3.centos.pool.ntp.org nomodify notrap noquery
7、設置開啟自啟動:
[root@ntp-server ~]# systemctl enable ntpd
[root@ntp-server ~]# systemctl enable ntpdate
[root@ntp-server ~]# systemctl is-enabled ntpd
手動修改服務器時間時:
[root@ntp-server ~]# timedatectl set-ntp no
[root@ntp-server ~]# timedatectl set-time 10:00:00
8、查看服務器硬件時間:
[root@ntp-server ~]# hwclock
硬件時鍾與系統時鍾同步:
# hwclock --hctosys 或者 # clock --hctosys hc代表硬件時間,sys代表系統時間,即用硬件時鍾同步系統時鍾
系統時鍾和硬件時鍾同步:
# hwclock --systohc或者# clock --systohc 即用系統時鍾同步硬件時鍾
9、服務端重啟NTP服務:
[root@ntp-server ~]# systemctl restart ntpdate
二、客戶端配置ntp:
1、通過ntpd方式同步時間
vim /etc/ntp.conf
server 192.168.13.131
fudge 127.127.1.0 stratum 11 #這里必須是11,因為不是頂級的
[root@ntp-client ~]# ntpq -np #通過配置ntp配置文件,完成自動時間同步
remote refid st t when poll reach delay offset jitter
==============================================================================
192.168.13.131 LOCAL(0) 12 u 12 64 1 0.432 2.574 0.000
2、通過ntpdate方式同步時間
[root@ntp-client ~]# ntpdate 192.168.13.131 #手動NTP同步時間
[root@ntp-client ~]# crontab -e #通過定時任務完成同步
0 0 * * * /usr/sbin/sntp -P no -r 192.168.13.131;hwclock -w
四、命令解析:
一、ntpq
1、簡介:
ntpq是查詢ntpd工作狀態的命令,一般使用“ntpq -np”參數
二、ntpdate
1、簡介:
ntpdate通過輪詢指定為服務器參數的網絡時間協議(NTP)服務器來設置本地日期和時間,從而確定正確的時間,在使用ntpdate同步時間時,需要保證ntpd服務處於關閉狀態。
2、使用條件:
root身份
ntpd未運行(ntpd運行時占用udp123端口)
3、常用方法:
ntpdate -d ip
debug模式,查詢與服務器的時差,狀態。ip是指時間服務器的IP地址
ntpdate ip
與服務器同步本地系統時間
三、hwclock
1、簡介:
是一個硬件時鍾訪問工具,它可以顯示當前時間、設置硬件時鍾的時間和設置硬件時鍾為系統時間,也可設置系統時間為硬件時鍾的時間。
在Linux中有硬件時鍾與系統時鍾等兩種時鍾。硬件時鍾是指主機板上的時鍾設備,也就是通常可在BIOS畫面設定的時鍾。系統時鍾則是指kernel中的時鍾。當linux啟動時,系統時鍾會去讀取硬件時鍾的設定,之后系統時鍾即獨立運作。所有linux相關指令與函數都是讀取系統時鍾的設定。
2、選項:
--adjust:hwclock每次更改硬件時鍾時,都會記錄在/etc/adjtime文件中。使用--adjust參數,可使hwclock根據先前的記錄來估算硬件時鍾的偏差,並用來校正目前的硬件時鍾;
--debug:顯示hwclock執行時詳細的信息;
--directisa:hwclock預設從/dev/rtc設備來存取硬件時鍾。若無法存取時,可用此參數直接以I/O指令來存取硬件時鍾;
--hctosys:將系統時鍾調整為與目前的硬件時鍾一致;
--set --date=<日期與時間>:設定硬件時鍾;
--show:顯示硬件時鍾的時間與日期;
--systohc:將硬件時鍾調整為與目前的系統時鍾一致;
--test:僅測試程序,而不會實際更改硬件時鍾;
--utc:若要使用格林威治時間,請加入此參數,hwclock會執行轉換的工作;
--version:顯示版本信息。