![大数据技能竞赛知识点解析与实践](https://wfqqreader-1252317822.image.myqcloud.com/cover/364/48213364/b_48213364.jpg)
1.3 时间同步
1.3.1 同步网络时间
1.概述
长时间运行Linux服务器时,其系统时间可能会存在一定的误差,一般情况下可以使用date命令进行时间修正。但是当不同设备上的系统时间不一致时,则会在协同处理、网络管理、执行顺序上出现问题。
网络时间协议(Network Time Protocol,NTP)是用来使各个主机时钟同步的一种协议,它可以直接将主机的时钟同步到世界协调时间(Universal Time Coordinated,UTC),也可以通过NTP服务器从权威时钟源或网络接收外部UTC源,客户端再从服务器请求和接收时间。
时间按照NTP服务器的等级传播,按照离外部UTC源的远近将所有服务器归入不同的Stratum(层)中。Stratum-1在顶层,有外部UTC接入,而Stratum-2则从Stratum-1获取时间,Stratum-3从Stratum-2获取时间,以此类推,但Stratum层的总数限制在15以内。
2.目标
单台服务器同步网络时间。
3.准备
操作系统:CentOS 7.3。
4.考点:单台服务器同步时间
(1)使用date查看虚拟机当前时间
Linux系统中时钟有两个,一个是系统时钟,即Linux系统Kernel时间,另一个是硬件时钟,即主板上的BIOS时间。系统启动时,系统时间会读取硬件时钟的设置并独立于硬件运行,这个过程可能存在时区换算,导致系统时钟和硬件时钟不一致。
![](https://epubservercos.yuewen.com/5C8469/27732749102824406/epubprivate/OEBPS/Images/17_01.jpg?sign=1739312252-t8rixKGNM99z1O48nBJxcBUvgarJ7swk-0-62151000684ce898faf25cc0a16b88ae)
结果中可以看到,其系统时间为“07:31:33”,时区为“+0000”表示为0时区,和硬件时间(东八区)时间相差8个小时。
(2)修改时间与时区
①使用date-s命令修改当前时间。
![](https://epubservercos.yuewen.com/5C8469/27732749102824406/epubprivate/OEBPS/Images/17_02.jpg?sign=1739312252-GNQyLchqiihwDt54qD4HKoTX5jUnLO8h-0-f300b7816c45fabee2c0346122a3a0f6)
结果中可以看到,系统时间虽然已经修改,但是其时区依然没有变化。
②使用ntpdate命令使网络时间同步。
![](https://epubservercos.yuewen.com/5C8469/27732749102824406/epubprivate/OEBPS/Images/17_03.jpg?sign=1739312252-O1mOs4KGDV83v6bU9I49QOnVMBa20Kcf-0-938f63186acb55f3690d699be52d643c)
参数说明:-u:越过防火墙与主机同步。ntp常用服务器:NTP服务器(上海):ntp.api.bz;中国国家授时中心IP地址:210.72.145.44。
③使用timedatectl命令查询和更改系统时钟和设置,使用“set-timezone”设定对应时区。
![](https://epubservercos.yuewen.com/5C8469/27732749102824406/epubprivate/OEBPS/Images/17_04.jpg?sign=1739312252-Bl0z4tO2d9cfSCnHjIZEXUAlhgpo8BCY-0-a954257d253adc13e1d63b583878a8a5)
![](https://epubservercos.yuewen.com/5C8469/27732749102824406/epubprivate/OEBPS/Images/18_01.jpg?sign=1739312252-8JNluZ1Ac9l0uOlUemL8bF1HGrlTSmEH-0-bb13e123524caffa9cfb2bc2255e7211)
④使用tzselect查找和修改时区。
![](https://epubservercos.yuewen.com/5C8469/27732749102824406/epubprivate/OEBPS/Images/18_02.jpg?sign=1739312252-45xyULAb1tHu2M7pT27RlsdI7sKqzYIe-0-a3c70e08ac913fc007d7358b8bb819fd)
![](https://epubservercos.yuewen.com/5C8469/27732749102824406/epubprivate/OEBPS/Images/19_01.jpg?sign=1739312252-86eLXDxkhFaH22cwxx5YgHyB8Gt7sH70-0-3c854e5c73fb5de1393d4638c8d7e381)
注:tzselect命令只是告诉提示时区的方法,根据得到的提示“TZ=′Asia/Shanghai′;export TZ”,需要将TZ环境变量写入.profile文件。
![](https://epubservercos.yuewen.com/5C8469/27732749102824406/epubprivate/OEBPS/Images/19_02.jpg?sign=1739312252-jNeqyxQjhZl78bhSK4lo5MjejirFb5nv-0-dabdebc7d0e02653fe2ab00d18309e60)
⑤修改配置文件,将/usr/share/zoneinfo中相应的时区文件(如Asia/Shanghai)替换当前的系统时区文件/etc/localtime,此种修改方式对date命令是即时生效的。
![](https://epubservercos.yuewen.com/5C8469/27732749102824406/epubprivate/OEBPS/Images/19_03.jpg?sign=1739312252-qQnG04Jbuz1DFQOdPE8SEI567QEICvOD-0-883dc5b85c1a9cf48aa0c38b31909dc4)
⑥使用hwclock同步本地系统时钟和BIOS时间。
![](https://epubservercos.yuewen.com/5C8469/27732749102824406/epubprivate/OEBPS/Images/19_04.jpg?sign=1739312252-q60CCnwXeCl8NJLa3mp14FBmAfE96zRc-0-05a36842b0d8426f4e9a9bc56d5a409c)