實驗環境:html
OS:Linux Centos 7.4 x86_64linux
1.查看當前服務器時區&列出時區並設置時區(如已經是正確時區,請略過):vim
# timedatectl # timedatectl list-timezones # timedatectl set-timezone Asia/Shanghai
2.時間時區概念理解:centos
GMT、UTC、CST、DST服務器
UTC:less
整個地球分爲二十四時區,每一個時區都有本身的本地時間,在國際無線電通訊場合,爲了統一塊兒見,使用一個統一的時間,稱爲通用協調時(UTC:Universal Time Coordinated)。ide
GMT:oop
格林威治標準時間 (Greenwich Mean Time)指位於英國倫敦郊區的皇家格林尼治天文臺的標準時間,由於本初子午線被定義在經過那裏的經線(UTC與GMT時間基本相同)。this
CST:centos7
中國標準時間 (China Standard Time)
GMT + 8 = UTC + 8 = CST
DST:
夏令時(Daylight Saving Time) 指在夏天太陽升起的比較早時,將時間撥快一小時,以提前日光的使用(中國不使用)。
2.使用 NTP 公共時間服務器池(NTP Public Pool Time Servers)http://www.pool.ntp.org 同步你的服務器時間。
查看是否安裝:
# rpm -q ntp ntp-4.2.6p5-25.el7.centos.2.x86_64
如已安裝請略過此步,不然請執行如下命令安裝:
# yum install ntpdate ntp -y
修改NTP配置:
注:綠色爲原有我註釋掉的內容,紅色爲新增代替以前註釋內容,其餘默認。
# vim /etc/ntp.conf # For more information about this file, see the man pages # ntp.conf(5), ntp_acc(5), ntp_auth(5), ntp_clock(5), ntp_misc(5), ntp_mon(5). driftfile /var/lib/ntp/drift #新增:日誌目錄. logfile /var/log/ntpd.log # Permit time synchronization with our time source, but do not # permit the source to query or modify the service on this system. restrict default nomodify notrap nopeer noquery # Permit all access over the loopback interface. This could # be tightened as well, but to do so would effect some of # the administrative functions. restrict 127.0.0.1 restrict ::1 #這一行的含義是受權172.16.128.0網段上的全部機器能夠從這臺機器上查詢和同步時間. restrict 172.16.128.0 mask 255.255.255.0 nomodify notrap # Hosts on local network are less restricted. #restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap # Use public servers from the pool.ntp.org project. # Please consider joining the pool (http://www.pool.ntp.org/join.html). #server 0.centos.pool.ntp.org iburst #server 1.centos.pool.ntp.org iburst #server 2.centos.pool.ntp.org iburst #server 3.centos.pool.ntp.org iburst #新增:時間服務器列表. server 0.cn.pool.ntp.org iburst server 1.cn.pool.ntp.org iburst server 2.cn.pool.ntp.org iburst server 3.cn.pool.ntp.org iburst #新增:當外部時間不可用時,使用本地時間. server 172.16.128.171 iburst fudge 127.0.0.1 stratum 10 #broadcast 192.168.1.255 autokey # broadcast server #broadcastclient # broadcast client #broadcast 224.0.1.1 autokey # multicast server #multicastclient 224.0.1.1 # multicast client #manycastserver 239.255.254.254 # manycast server #manycastclient 239.255.254.254 autokey # manycast client #新增:容許上層時間服務器主動修改本機時間. restrict 0.cn.pool.ntp.org nomodify notrap noquery restrict 1.cn.pool.ntp.org nomodify notrap noquery restrict 2.cn.pool.ntp.org nomodify notrap noquery # Enable public key cryptography. #crypto includefile /etc/ntp/crypto/pw # Key file containing the keys and key identifiers used when operating # with symmetric key cryptography. keys /etc/ntp/keys # Specify the key identifiers which are trusted. #trustedkey 4 8 42 # Specify the key identifier to use with the ntpdc utility. #requestkey 8 # Specify the key identifier to use with the ntpq utility. #controlkey 8 # Enable writing of statistics records. #statistics clockstats cryptostats loopstats peerstats # Disable the monitoring facility to prevent amplification attacks using ntpdc # monlist command when default restrict does not include the noquery flag. See # CVE-2013-5211 for more details. # Note: Monitoring will not be disabled with the limited restriction flag. disable monitor
3.設置系統開機自啓動:
# systemctl enable ntpd # systemctl enable ntpdate # systemctl is-enabled ntpd
在ntpd服務啓動時,先使用ntpdate命令同步時間:
# ntpdate -u 1.cn.pool.ntp.org
緣由之一:當服務端與客戶端之間的時間偏差過大時,此時修改時間可能對系統或應用帶來不可預知問題,NTP會中止時間同步。若檢查NTP啓動後時間未同步時,應考慮多是時間偏差過大所致,此時須要先手動進行時間同步。
啓動NTP服務器:
# systemctl start ntpdate # systemctl start ntpd
4.加入防火牆:
# firewall-cmd --permanent --add-service=ntp # firewall-cmd --reload
5.查看ntp鏈接狀態若是沒有問題,將正確時間寫入硬件:
# ss -tlunp | grep ntp # ntpq -p # hwclock -w
5.1.系統時間與硬件時間
硬件時間:
RTC(Real-Time Clock)或CMOS時間,通常在主板上靠電池供電,服務器斷電後也會繼續運行。僅保存日期時間數值,沒法保存時區和夏令時設置。
系統時間:
通常在服務器啓動時複製RTC時間,以後獨立運行,保存了時間、時區和夏令時設置。
6.客戶端:
以服務進程方式實時同步(需安裝NTP):
# vim /etc/ntp.conf server 172.16.128.171
重要:修改任意節點服務器的NTP配置文件都須要重起ntpd服務:
# systemctl restart ntpd
以crontab任務計劃同步時間(需安裝ntpdate,天天24點更新同步時間):
# crontab -e 0 0 * * * /usr/sbin/sntp -P no -r 172.16.128.171;hwclock -w
已部署完畢。這樣集羣會自動按期進行服務的同步,如此以來集羣的時間就保持一致了。