- 大数据技能竞赛知识点解析与实践
- 李辉 张莹 卢兴民主编
- 5字
- 2023-11-13 14:59:43
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时间。系统启动时,系统时间会读取硬件时钟的设置并独立于硬件运行,这个过程可能存在时区换算,导致系统时钟和硬件时钟不一致。
结果中可以看到,其系统时间为“07:31:33”,时区为“+0000”表示为0时区,和硬件时间(东八区)时间相差8个小时。
(2)修改时间与时区
①使用date-s命令修改当前时间。
结果中可以看到,系统时间虽然已经修改,但是其时区依然没有变化。
②使用ntpdate命令使网络时间同步。
参数说明:-u:越过防火墙与主机同步。ntp常用服务器:NTP服务器(上海):ntp.api.bz;中国国家授时中心IP地址:210.72.145.44。
③使用timedatectl命令查询和更改系统时钟和设置,使用“set-timezone”设定对应时区。
④使用tzselect查找和修改时区。
注:tzselect命令只是告诉提示时区的方法,根据得到的提示“TZ=′Asia/Shanghai′;export TZ”,需要将TZ环境变量写入.profile文件。
⑤修改配置文件,将/usr/share/zoneinfo中相应的时区文件(如Asia/Shanghai)替换当前的系统时区文件/etc/localtime,此种修改方式对date命令是即时生效的。
⑥使用hwclock同步本地系统时钟和BIOS时间。