NTP时间服务器

发布时间 2023-03-27 14:49:28作者: 黄河大道东

前言

  大数据产生与处理系统是各种计算设备集群的,计算设备将统一、同步的标准时间用于记录各种事件发生时序,如E-MAIL信息、文件创建和访问时间、数据库处理时间等。
  大数据系统内不同计算设备之间控制、计算、处理、应用等数据或操作都具有时序性,若计算机时间不同步,这些应用或操作或将无法正常进行。
  大数据系统是对时间敏感的计算处理系统,时间同步是大数据能够得到正确处理的基础保障,是大数据得以发挥作用的技术支撑。
  大数据时代,整个处理计算系统内的大数据通信都是通过网络进行。
  时间同步也是如此,利用大数据的互联网络传送标准时间信息,实现大数据系统内时间同步。
  网络时间同步协议(NTP)是时间同步的技术基础。

安装

# 安装
yum –y install ntp

# 启动nptd服务
systemctl start ntpd.service

# 设置开机启动
chkconfig ntpd on

# 检查是否正常运行
ps -ef|grep ntpd

# 查看ntp服务器有无和上层ntp连通
ntpstat
  • 查看ntp状态时,可能会出现如下所示情况
    ① unsynchronised time server re-starting polling server every 8 s
    img
    ② unsynchronised polling server every 8 s
    img
    这种情况属于正常,ntp服务器配置完毕后,需要等待5-10分钟才能与/etc/ntp.conf中配置的标准时间进行同步。
    等一段时间之后,再次使用ntpstat命令查看状态,就会变成如下正常结果:
    img

  • 查看ntp服务器与上层ntp的状态
    ntpq -p
    img
    remote:本机和上层ntp的ip或主机名,“+”表示优先,“*”表示次优先
    refid:参考上一层ntp主机地址
    st:stratum阶层
    when:多少秒前曾经同步过时间
    poll:下次更新在多少秒后
    reach:已经向上层ntp服务器要求更新的次数
    delay:网络延迟
    offset:时间补偿
    jitter:系统时间与bios时间差

配置方式一

  • ntp服务端节点配置
driftfile /var/lib/ntp/drift
restrict default nomodify notrap nopeer noquery

restrict 192.168.8.137 nomodify notrap nopeer noquery
restrict 127.0.0.1
restrict ::1

# 配置同步网段
restrict 192.168.8.138 mask 255.255.255.0 nomodify notrap

# 以自己的时间为准
server 127.127.1.0
Fudge 127.127.1.0 stratum 10

includefile /etc/ntp/crypto/pw

keys /etc/ntp/keys

disable monitor
  • ntp客户端节点配置
driftfile /var/lib/ntp/drift

restrict default nomodify notrap nopeer noquery

restrict 192.168.8.139 nomodify notrap nopeer noquery
restrict 127.0.0.1
restrict ::1

# 配置同步网段
restrict 192.168.8.137 mask 255.255.255.0 nomodify notrap

# 以ntp时间服务端的时间为准
server 192.168.8.137
Fudge 192.168.8.137 stratum 10

includefile /etc/ntp/crypto/pw

keys /etc/ntp/keys

disable monitor

配置方式二

  • 配置
    10.2.111.152 当NTP时间服务端节点。
    10.2.111.157 当NTP客户端节点。
    设置配置文件/etc/ntp.conf, 按标红的地方修改就行别怀疑。

局域网内构建自己的ntp校时服务器并验证成功与否

  • 验证ntp服务器是否成功

打开并编辑crontab定时器, 命令:crontab -e 把下面一行加入:
意思是每隔1分钟,157(NTP客户端节点节点)就会去152(NTP服务端节点)上去同步时间。

*/1 * * * * /usr/sbin/ntpdate -u 10.2.111.152 > /dev/null

把157(客户端)上的时间故意改错,命令: date -s "20180712 18:30:50" 然后等一分钟,执行date 看时间是否已经变成和152(服务端)一样的时间了。搞定。

其它

  • 查看系统时间:timedatectl
  • 设置中国时区:timedatectl set-timezone Asia/Shanghai
  • 修改系统时间:
#方式1
date -s "20220828 12:00:00" 
#方式2
timedatectl set-time "2022-08-28 12:00:00"
#关闭时钟同步
timedatectl set-ntp no
#友情提示:(NTP enabled: yes) 该状态说明时钟同步已开启,这种状态修改时间后重启系统,修改后的时间会失效
  • 修改硬件时间
    • 查看硬件时间:hwclock --show
    • 修改硬件时间:hwclock --set --date "2022-7-11 18:20:30"
    • 同步系统时间和硬件时间:hwclock --hctosys
    • 将时间写入BIOS硬件:clock -w

GMT、UTC、CST、DST 时间

  • UTC
      整个地球分为二十四时区,每个时区都有自己的本地时间。在国际无线电通信场合,为了统一起见,使用一个统一的时间,称为通用协调时(UTC, Universal Time Coordinated)。

  • GMT
      格林威治标准时间 (Greenwich Mean Time)指位于英国伦敦郊区的皇家格林尼治天文台的标准时间,因为本初子午线被定义在通过那里的经线。(UTC与GMT时间基本相同,本文中不做区分)

  • CST
      中国标准时间 (China Standard Time)

  • DST
    (中国不使用)
      夏令时(Daylight Saving Time) 指在夏天太阳升起的比较早时,将时钟拨快一小时,以提早日光的使用。

友情提示:GMT + 8 = UTC + 8 = CST

参考

Linux配置ntp时间服务器(全):https://www.cnblogs.com/quchunhui/p/7658853.html
局域网内构建自己的ntp校时服务器并验证成功与否:https://www.likecs.com/show-203907543.html
CentOS7修改时区和时间:https://blog.csdn.net/wykqh/article/details/126519332
CentOS 7 修改系统时间或时区:https://www.cnblogs.com/zhaijiahui/p/16468416.html