![大数据技能竞赛知识点解析与实践](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=1739502140-lKH7FARqhKuSDcdNkO4rbhEZPOpVWwqP-0-ab3c65cc7c7a26baf0b9cd12f16c820b)
结果中可以看到,其系统时间为“07:31:33”,时区为“+0000”表示为0时区,和硬件时间(东八区)时间相差8个小时。
(2)修改时间与时区
①使用date-s命令修改当前时间。
![](https://epubservercos.yuewen.com/5C8469/27732749102824406/epubprivate/OEBPS/Images/17_02.jpg?sign=1739502140-3mIGdRNKEKHXvJlsat6J47CklKuEzBoq-0-7e7ba5b81511c790dcc732823e729919)
结果中可以看到,系统时间虽然已经修改,但是其时区依然没有变化。
②使用ntpdate命令使网络时间同步。
![](https://epubservercos.yuewen.com/5C8469/27732749102824406/epubprivate/OEBPS/Images/17_03.jpg?sign=1739502140-Aelp0CNFgDAFSoD1UB0deXwBffpbuX8R-0-0cabbea277706aa768ee9b694a44bd99)
参数说明:-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=1739502140-lSEUE84oG3EaZT07U56EE1iznQbKyvwJ-0-6943907ff719ef1659c552e1e605a32d)
![](https://epubservercos.yuewen.com/5C8469/27732749102824406/epubprivate/OEBPS/Images/18_01.jpg?sign=1739502140-DdkAJIxr0f8OI1lhrVM27segcrYFnM9r-0-77d20fec9f58b7dfdab4a122aa5ca9b9)
④使用tzselect查找和修改时区。
![](https://epubservercos.yuewen.com/5C8469/27732749102824406/epubprivate/OEBPS/Images/18_02.jpg?sign=1739502140-wRO3z8qwm7K17qulm8jyARSbiBMhexYi-0-32e5eaf13b520f42bdbc7a5cc7e93932)
![](https://epubservercos.yuewen.com/5C8469/27732749102824406/epubprivate/OEBPS/Images/19_01.jpg?sign=1739502140-GCS4hZcq8BSPxKcGmKV5vh4Fa12rjnEC-0-888583e8f6dfeb82a6e20ff5768c33c0)
注:tzselect命令只是告诉提示时区的方法,根据得到的提示“TZ=′Asia/Shanghai′;export TZ”,需要将TZ环境变量写入.profile文件。
![](https://epubservercos.yuewen.com/5C8469/27732749102824406/epubprivate/OEBPS/Images/19_02.jpg?sign=1739502140-PGKs3m5uhaLj6eIN9wIZPwvO6giIANyM-0-83e4e8969fcdbee1c54ddf3fa826eaf5)
⑤修改配置文件,将/usr/share/zoneinfo中相应的时区文件(如Asia/Shanghai)替换当前的系统时区文件/etc/localtime,此种修改方式对date命令是即时生效的。
![](https://epubservercos.yuewen.com/5C8469/27732749102824406/epubprivate/OEBPS/Images/19_03.jpg?sign=1739502140-npbF7xADsDKH8HwrKhY98iEN8h9TyFmd-0-7772ee57db4fa46cb790b9d4a4188b94)
⑥使用hwclock同步本地系统时钟和BIOS时间。
![](https://epubservercos.yuewen.com/5C8469/27732749102824406/epubprivate/OEBPS/Images/19_04.jpg?sign=1739502140-vCYX66MLhxTVeTu8Nm8wXWqkIlXtnbxR-0-1812709d60eb059eb84fade4570293fe)