• centos7多主机--实现时间同步chrony服务


    1、chronyc命令

    chronyc–设置时间与时钟服务器同步

    chronyc sources -v		//查看 ntp_servers
    chronyc	sourcestats		//查看时间同步源状态
    chronyc activity -v		//查看 ntp_servers 是否在线
    chronyc tracking -v		//查看 ntp 详细信息
    chronyc -a makestep		//强制同步下系统时钟
    
    • 1
    • 2
    • 3
    • 4
    • 5

    chrony.conf 默认配置说明

    # 使用 pool.ntp.org 项目中的公共服务器。以server开,理论上想添加多少时间服务器都可以。
    # Use public servers from the pool.ntp.org project.
    # Please consider joining the pool (http://www.pool.ntp.org/join.html).
    server 0.centos.pool.ntp.org iburst
    server 1.centos.pool.ntp.org iburst
    server 2.centos.pool.ntp.org iburst
    server 3.centos.pool.ntp.org iburst
    
    # 根据实际时间计算出服务器增减时间的比率,然后记录到一个文件中,在系统重启后为系统做出最佳时间补偿调整。
    # Record the rate at which the system clock gains/losses time.
    driftfile /var/lib/chrony/drift
    
    # 如果系统时钟的偏移量大于1秒,则允许系统时钟在前三次更新中步进。
    # Allow the system clock to be stepped in the first three updates if its offset is larger than 1 second.
    makestep 1.0 3
    
    # 启用实时时钟(RTC)的内核同步。
    # Enable kernel synchronization of the real-time clock (RTC).
    rtcsync
    
    # 通过使用 hwtimestamp 指令启用硬件时间戳
    # Enable hardware timestamping on all interfaces that support it.
    #hwtimestamp *
    
    # Increase the minimum number of selectable sources required to adjust the system clock.
    #minsources 2
    
    # 指定 NTP 客户端地址,以允许或拒绝连接到扮演时钟服务器的机器
    # Allow NTP client access from local network.
    #allow 192.168.0.0/16
    
    # Serve time even if not synchronized to a time source.
    #local stratum 10
    
    # 指定包含 NTP 身份验证密钥的文件。
    # Specify file containing keys for NTP authentication.
    #keyfile /etc/chrony.keys
    
    # 指定日志文件的目录。
    # Specify directory for log files.
    logdir /var/log/chrony
    
    # 选择日志文件要记录的信息。
    # Select which information is logged.
    #log measurements statistics tracking
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45

    2、timedatectl命令

    timedatectl–控制系统时间和日期

    timedatectl									//查看日期时间、时区及 NTP 状态
    timedatectl list-timezones					//查看已知时区列表
    timedatectl set-timezone Asia/Shanghai		//修改时区
    timedatectl set-time "2021-04-15 15:50:20"	//修改日期时间(可以只修改其中一个)
    timedatectl set-ntp true/flase				//开启 NTP服务
    
    • 1
    • 2
    • 3
    • 4
    • 5

    3、常见时区

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

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

    (3)CST 中国标准时间 (China Standard Time) GMT + 8 = UTC + 8 = CST

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

    3、实现多主机时间同步

    1、环境准备

    1.环境Centos7
    2.主机:
    	master:
    		192.168.8.156
    	slave:
    		192.168.8.157
    		192.168.8.158
    3.确定本机是否默认安装chrony服务
    4.防火墙添加ntp服务或者关闭防火墙(NTP服务使用123/UDP端口协议)
    5.检查时区
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    1、确认是否含有chrony
    >>> rpm -qa chrony
    chrony-3.4-1.el7.x86_64
    2、没有就下载
    [root@szx network-scripts]# yum install -y chrony
    
    3、防火墙操作
    systemctl stop firewalld		//停止firewalld服务
    systemctl disable firewalld	//禁止firewalld开机启动
    或者
    firewall-cmd --add-service=ntp --permanent		//firewalld防火墙内放行NTP服务
    firewall-cmd --reload
    
    4、检查时区
    >>> timedatectl
           Time zone: America/Los_Angeles (PDT, -0700) 如果显示Asia/Shanghai,即正常
    这里明显是美国时区,进行修改:
    	timedatectl list-timezones |  grep  -E "Asia/Sha.*"	// 查看亚洲上海可用时区
    	timedatectl set-timezone "Asia/Shanghai"			//设置当前系统为上海时区
    	chronyc -a makestep									//手动同步系统时钟
    此时在此查看timedatectl,显示Time zone: Asia/Shanghai (CST, +0800)正常
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    2、主机配置:192.168.8.156

    1、修改 /etc/chrony.conf配置文件
    >>> vim /etc/chrony.conf
    server s1a.time.edu.cn iburst			// 北京邮电大学授时中心
    server ntp.aliyun.com iburst			//  阿里云授时中心
    #server 0.centos.pool.ntp.org iburst	//注释掉默认的ntp服务器,该服务器同步时间略慢
    #server 1.centos.pool.ntp.org iburst	//格式为:server 服务器ip地址 iburst 
    #server 2.centos.pool.ntp.org iburst
    #server 3.centos.pool.ntp.org iburst
    allow 192.168.0.0/16					//指定 NTP 客户端地址,以允许或拒绝连接到扮演时钟服务器的机器
    
    2、启动chrony服务
    systemctl start chronyd
    systemctl enable chronyd
    systemctl status chronyd
    
    3、手动同步并查看同步源,确保同步成功
    chronyc -a makestep		// 手动同步系统时钟
    chronyc sources -v		//查看时间同步源
    ===============================================================================
    ^? st0-bupt-1.ntp.edu.cn         0   7     0     -     +0ns[   +0ns] +/-    0ns
    ^* 203.107.6.88                  2   6    17    37   +965us[+1411us] +/-   21ms
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    3、客户端配置–两台机器同步进行以下操作即可

    1、修改 /etc/chrony.conf配置文件
    >>> vim /etc/chrony.conf
    server 192.168.8.158 iburst		// 默认的四个注释掉
    allow 192.168.8.0/24				//添加master的ip连接到扮演时钟服务器的机器
    
    2、启动chrony服务
    systemctl start chronyd
    systemctl enable chronyd
    systemctl status chronyd
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    4、查看时间同步状态(三台主机都需要查看)

    >>> timedatectl status		//两个yes说明同步成功
          Local time: 五 2022-08-26 19:25:53 CST
      Universal time: 五 2022-08-26 11:25:53 UTC
            RTC time: 五 2022-08-26 11:25:53
           Time zone: Asia/Shanghai (CST, +0800)
         NTP enabled: yes			
    NTP synchronized: yes
     RTC in local TZ: no
          DST active: n/a
    
    如果遇到没开启的,手动开启网络时间同步
    >>> timedatectl set-ntp true
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    此时三台服务器应该时间同步完成,可以查看date命令,显示当前系统时间

    5、如果需要修改系统时间,需要先关闭NTP时间同步服务,再去修改系统时间,最后再开启NTP时间同步服务

    1、关闭NTP时间同步服务
    timedatectl set-ntp flase
    2、修改系统时间
    timedatectl set-time "2021-08-15 15:30:20"
    当然也可以修改其中一部分,如修改年月日 或者 时分秒
    或者
    timedatectl set-time "2021-08-15"
    timedatectl set-time "15:30:20"
    
    3、开启NTP时间同步服务
    timedatectl set-ntp true
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    4、时间相关命令(date/clock)

    date -s 16:03:00		// 修改时间--设置时分秒
    date -s "2012-05-23 01:01:01"    // 这样可以设置全部时间
    date -s "20201021 18:30:50"
    
    clock -w	// 硬件时间同步系统时间
    clock -s	//系统时间同步硬件时间,hwclock --systohc
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    参考chrony 详解

  • 相关阅读:
    【Kafka三】Kakfa API
    基于SSM的智慧城市实验室主页系统的设计与实现
    CMake编译 oss -cpp-sdk arm列子
    Go-命令行参数解析
    DeiT学习笔记
    VS Code 常用快捷键
    docker 运行 springboot采坑
    2 Redis的高级数据结构
    解决关键词这个问题,ASO优化效果事半功倍
    Mysql高级篇学习总结14:子查询优化、排序优化、GROUP BY优化、分页查询优化
  • 原文地址:https://blog.csdn.net/szb521/article/details/126548985