chrony时间同步
chrony简介
Chrony 是一个用于同步计算机系统时钟的软件。它旨在提供比标准的 ntp
(Network Time Protocol) 更准确和稳定的时钟同步服务。
-
更佳的时间同步精度:Chrony 能够比传统的 NTP 实现更快的时间校正,尤其在网络条件较差的情况下。
-
处理网络波动:Chrony 设计有能力处理大范围的网络条件波动,即使在网络中断后也能快速恢复同步。
-
资源消耗低:Chrony 对系统资源的要求低,特别适合资源受限的设备。
chrony安装
基于RHEL9系统进行安装
[root@localhost ~]# rpm -qa |grep chrony
[root@localhost ~]# yum install -y chrony
chrony配置
Chrony 的配置文件,通常位于 /etc/chrony.conf
。
在这个文件中,你可以设置服务器、同步频率等选项
配置时间服务器。可以使用公共 NTP 服务器或内部 NTP 服务器。例如:
阿里云:ntp1.aliyun.com
腾讯:ntp.tencent.com
[root@localhost ~]# vim /etc/chrony.conf
# NTP服务器的地址,这里使用的是pool 2.rhel.pool.ntp.org iburst
# 表示使用Red Hat Enterprise Linux服务器中的NTP池
# iburst选项表示初始突发地获取时间同步信息
pool 2.rhel.pool.ntp.org iburst
# DHCP提供的NTP服务器,这个目录包含从DHCP服务器获取的NTP服务器列表
sourcedir /run/chrony-dhcp
# 指定了记录系统时钟的偏移值的文件路径
driftfile /var/lib/chrony/drift
# 如果系统时钟的偏移大于1秒,允许在前三次更新中对系统时钟进行步进调整
makestep 1.0 3
# 启用了与实时时钟(RTC)的内核同步。
rtcsync
# 指定所有支持硬件时间戳的接口上启用硬件时间戳
#hwtimestamp *
# 增加调整系统时钟所需的最小可选源数量
#minsources 2
# 允许本地网络访问NTP客户端
#allow 192.168.0.0/16
# 即使未与时间源同步,也提供时间服务
#local stratum 10
# 要求所有NTP源进行身份验证(使用nts或key选项)
#authselectmode require
# 指定用于NTP身份验证的密钥文件
keyfile /etc/chrony.keys
# 保存NTS密钥和Cookie
ntsdumpdir /var/lib/chrony
# Insert/delete leap seconds by slewing instead of stepping.
#leapsecmode slew
# 从系统时区数据库获取TAI-UTC偏移和闰秒
leapsectz right/UTC
# 指定了日志文件的目录
logdir /var/log/chrony
# 选择记录的信息
#log measurements statistics tracking
chrony使用
服务端
[root@localhost ~]# hostnamectl set-hostname server
[root@localhost ~]# bash
[root@server ~]#
[root@server ~]# vim /etc/chrony.conf
server ntp1.aliyun.com iburst
allow 192.168.0.0/16
[root@server ~]# systemctl restart chronyd.service
[root@server ~]# systemctl enable chronyd.service
[root@server ~]# chronyc sources
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
^* 120.25.115.20 2 6 307 19 +83us[ +145us] +/- 24ms
客户端
[root@localhost ~]# hostnamectl set-hostname client
[root@localhost ~]# bash
[root@client ~]#
[root@client ~]# rpm -qa |grep chrony
[root@client ~]# yum install -y chrony
[root@client ~]# vim /etc/chrony.conf
server 192.168.200.10 iburst
allow 192.168.200.10/24
[root@client ~]# systemctl restart chronyd.service
[root@client ~]# systemctl enable chronyd.service
[root@localhost ~]# chronyc sources
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
^? 192.168.200.10 0 8 0 - +0ns[ +0ns] +/- 0ns
chronyc命令
显示当前系统时钟与NTP服务器的同步状态,包括偏移量、频率误差等信息。
chronyc tracking
列出系统当前正在使用的时间服务器源,以及它们的状态和各种统计信息
chronyc sources
手动强制系统时钟进行快速调整,使其与时间服务器同步
chronyc -a makestep
Linux手动校时:date、hwclock
在软件时钟方面,可以通过 date这个命令来进行手动修改,如果修改BIOS记录的时间,就要使用hwclock这个命令来写入才行
修改时间为1小时后
[root@ntp-client ~]# date -s "2023-06-19 14:15"
2023年 06月 19日 星期一 14:15:00 CST
hwclock [-rw]
选项:
-r:就是read,读出目前BIOS内的时间参数
-w:也就是write,将目前的系统时间写入 BIOS中
查阅BIOS时间,并写入更改过的时间
[root@ntp-client ~]# date; hwclock -r
2023年 06月 19日 星期一 14:15:10 CST
2023年06月19日 星期一 13时15分42秒 -0.115410 秒
# 刚刚相差1个小时,就是BIOS时间
[root@ntp-client ~]# hwclock -w;hwclock -r;date
2023年06月19日 星期一 14时18分19秒 -0.423185 秒
2023年 06月 19日 星期一 14:18:18 CST
# 这样就写入了,软件时钟和硬件时钟就同步了