![大数据技能竞赛知识点解析与实践](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=1739026523-K0G0at0rpmJFkZTd1gkLPs1iwOBZmEdL-0-cc15ca6c2dd10fb6bc4c41812650f6af)
结果中可以看到,其系统时间为“07:31:33”,时区为“+0000”表示为0时区,和硬件时间(东八区)时间相差8个小时。
(2)修改时间与时区
①使用date-s命令修改当前时间。
![](https://epubservercos.yuewen.com/5C8469/27732749102824406/epubprivate/OEBPS/Images/17_02.jpg?sign=1739026523-bYV0j3xXUMGDd5TxbDDQuFti4AMX4uJF-0-2ceb1222b07d9a1ba84da307a1f6dc87)
结果中可以看到,系统时间虽然已经修改,但是其时区依然没有变化。
②使用ntpdate命令使网络时间同步。
![](https://epubservercos.yuewen.com/5C8469/27732749102824406/epubprivate/OEBPS/Images/17_03.jpg?sign=1739026523-sOluN9U8YKuJiQJa64BSzfLIT1nF8kxM-0-633e5d30e62e9a908a60ed12b2e09e29)
参数说明:-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=1739026523-8qHYOlJtP9s2FsJpC60QDtbKylfzcPHc-0-aa321d04e3502f551f5a2fbba6222cca)
![](https://epubservercos.yuewen.com/5C8469/27732749102824406/epubprivate/OEBPS/Images/18_01.jpg?sign=1739026523-vA0pom28eWXJuh9L8Za4D6OXZaJwU3Lj-0-8cb832942fc79f5950b3780d9ca47118)
④使用tzselect查找和修改时区。
![](https://epubservercos.yuewen.com/5C8469/27732749102824406/epubprivate/OEBPS/Images/18_02.jpg?sign=1739026523-uFSN6DFmSGz6KWHevwiRTQ3dlyxIjZtc-0-ddd4bd343987ec9f895d873573cfe55f)
![](https://epubservercos.yuewen.com/5C8469/27732749102824406/epubprivate/OEBPS/Images/19_01.jpg?sign=1739026523-zgrIqJDTFLCcn2d2krOPyma6O4T6SLew-0-9f7b258286ec56bc8d291c9d97a4de38)
注:tzselect命令只是告诉提示时区的方法,根据得到的提示“TZ=′Asia/Shanghai′;export TZ”,需要将TZ环境变量写入.profile文件。
![](https://epubservercos.yuewen.com/5C8469/27732749102824406/epubprivate/OEBPS/Images/19_02.jpg?sign=1739026523-Uk3mSmyHYZaVqq2gVYrkBqjIf369GnEj-0-e58bd53311edad534fe464a06e76bca4)
⑤修改配置文件,将/usr/share/zoneinfo中相应的时区文件(如Asia/Shanghai)替换当前的系统时区文件/etc/localtime,此种修改方式对date命令是即时生效的。
![](https://epubservercos.yuewen.com/5C8469/27732749102824406/epubprivate/OEBPS/Images/19_03.jpg?sign=1739026523-lWzL39VpiIY3dXXE4mzBEiZUMKNTHRwn-0-0029fec2581829a895fdc362d83e8327)
⑥使用hwclock同步本地系统时钟和BIOS时间。
![](https://epubservercos.yuewen.com/5C8469/27732749102824406/epubprivate/OEBPS/Images/19_04.jpg?sign=1739026523-iGyAoXgUCilbbwqOP5ekkm9z1xTWCD3P-0-3517809b81c100ca7be90495fcc13a3d)