【Linux】使用chrony同步服务器时间
一、简介
Chrony是一个开源自由的网络时间协议 NTP 的客户端和服务器软软件。它能让计算机保持系统时钟与时钟服务器(NTP)同步,因此让你的计算机保持精确的时间,Chrony也可以作为服务端软件为其他计算机提供时间同步服务。
Chrony由两个程序组成,分别是chronyd和chronyc
chronyd是一个后台运行的守护进程,用于调整内核中运行的系统时钟和时钟服务器同步。它确定计算机增减时间的比率,并对此进行补偿。
chronyc提供了一个用户界面,用于监控性能并进行多样化的配置。它可以在chronyd实例控制的计算机上工作,也可以在一台不同的远程计算机上工作。NTP 是网络时间协议(Network Time Protocol)的简称,通过 udp 123 端口进行网络时钟同步。
RHEL7中默认使用chrony作为时间服务器,也支持NTP,需要额外安装。
注意:NTP与chrony不能同时存在,只能用其中一个,并将另一个mask掉。
二、yum安装、启动chrony
# 安装chrony
yum install chrony
# 查看chronyd服务是否开机自启
systemctl is-enabled chronyd
# 注册chronyd服务系统开机自启
systemctl enable chronyd
# 启动chronyd服务
systemctl start chronyd
# 查看chronyd服务状态
systemctl status chronyd
三、修改chrony配置
- 安装的chrony默认配置文件位置
/etc/chrony.conf
vim /etc/chrony.conf
命令修改配置文件- 修改后重启chronyd服务
systemctl restart chronyd
- 记得查看时间同步状态是否开启,如未开启则需要手动开启
timedatectl status
timedatectl set-ntp true
- 注意:使用
timedatectl
命令手动设置系统时间之前,需要通知ntp时间同步功能
# 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
# 增加ntp同步服务器地址
# 自行百度查询,或者使用公司内部的授时服务器也可以,这里使用清华大学授时服务
# https://tuna.moe/help/ntp/ 清华授时服务说明文档
server ntp.tuna.tsinghua.edu.cn iburst
四、chronyc 命令
- 查看ntp_servers
chronyc sources -v
- 查看ntp_servers状态
chronyc sourcestats -v
- 查看ntp_servers是否在线
chronyc activity -v
- 查看 ntp 详细信息
chronyc tracking -v
- 强制同步系统时钟
chronyc -a makestep
五、
- Name/IP address
- 这显示了源的名称或IP地址,或参考时钟的参考ID。
- Stratum
- 这显示了来源的层,如其最近收到的样本中所报告的那样。层1表示一台具有本地连接的参考时钟的计算机。与第1层计算机同步的计算机位于第2层。与第2层计算机同步的计算机位于第3层,依此类推。
- Poll
- 这显示轮询源的速率,以秒为单位的时间间隔的以2为底的对数。因此,值为6表示每64秒进行一次测量。chronyd会根据当前情况自动更改轮询速率。
- Reach
- 这显示了源的可达性寄存器以八进制数字打印。寄存器有8位,并在每个从源接收或丢失的数据包上更新。值377表示从最后八次传输中收到了对所有用户的有效答复。
- LastRx
- 此列显示多长时间前从来源接收到了最后一个好的样本(在下一列中显示)。未通过某些测试的测量将被忽略。通常以秒为单位。字母m,h,d或y表示分钟,小时,天或年。
- Last sample
- 此列显示上次测量时本地时钟与源之间的偏移。方括号中的数字表示实际测得的偏移量。可以用ns(表示纳秒),us (表示微秒),ms(表示毫秒)或s(表示秒)作为后缀。方括号左侧的数字表示原始测量值,已调整为允许此后施加于本地时钟的任何摆度。
- +/-指示器后面的数字表示测量中的误差范围。正偏移表示本地时钟位于源时钟之前。