Linux

关注公众号 jb51net

关闭
首页 > 网站技巧 > 服务器 > Linux > Linux(CentOS)​​同步服务器chrony

Linux(CentOS)​​同步服务器chrony的安装配置和常用命令

作者:IT后浪

Chrony是一款开源的网络时间协议(NTP)客户端和服务端软件,旨在提供高精度的时间同步功能,相较于传统的NTP实现如ntpd,Chrony提供了一些改进和优势,包括更快的同步速度、低延迟、低CPU占用和低内存消耗,本文介绍Linux(CentOS)​​同步服务器chrony的安装配置和常用命令

Chrony是一款开源的网络时间协议(NTP)客户端和服务端软件,旨在提供高精度的时间同步功能。相较于传统的 NTP 实现如 ntpdChrony提供了一些改进和优势,包括更快的同步速度、低延迟、低CPU占用和低内存消耗。以下是 Chrony的几个关键特性和使用场景:

Chrony的组成

Chrony的特点:

Chrony使用场景:

综上,Chrony是一个强大且灵活的时间同步工具,适用于各种需要精确时间同步的环境,尤其在面对现代计算挑战如虚拟化、节能技术和网络波动时表现出色。

yum命令查看Chrony是否安装

要使用 yum 命令查看 Chrony 是否已经安装,可以执行以下命令:

yum list installed chrony

这条命令会列出所有已安装的软件包,并在结果中查找是否有 chrony。如果 chrony 出现在输出列表中,那么就意味着 Chrony 已经安装在你的系统上。如果没有找到 chrony,则表示它尚未安装。

yum命令安装 Chrony

对于 CentOS 7 及更高版本,Chrony很可能是预装的。如果不是,或者你需要在较旧的 CentOS版本上安装,可以使用 YUM 包管理器来安装 Chrony

sudo yum install chrony -y

对于 CentOS 8 及更高版本,使用 DNF(DNF 是 YUM 的替代品):

sudo dnf install chrony -y

Chrony常用命令

启动 Chrony服务

sudo systemctl start chronyd

对于较老的系统,可能需要使用 service 命令:

sudo service chronyd start

停止 Chrony服务

sudo systemctl stop chronyd

重启 Chrony服务

sudo systemctl restart chronyd

设置 Chrony开机启动

sudo systemctl enable chronyd

禁用 Chrony开机启动

sudo systemctl disable chronyd

查看 Chrony状态

sudo systemctl status chronyd

查看 Chrony日志

默认的日志路径可能在 /var/log/chrony/chronyd.log,你可以使用如下命令查看:

sudo cat /var/log/chrony/chronyd.log

或使用 journalctl 查看实时日志:

sudo journalctl -u chronyd -f

Chronyc命令行工具

chronyc 是 Chrony的用户界面,用于监视和控制 Chrony守护进程。一些常用的 chronyc 命令包括:

查看源状态

chronyc sources -v

命令返回内容

.-- Source mode  '^' = server, '=' = peer, '#' = local clock.
 / .- Source state '*' = current synced, '+' = combined , '-' = not combined,
| /   '?' = unreachable, 'x' = time may be in error, '~' = time too variable.
||                                                 .- xxxx [ yyyy ] +/- zzzz
||      Reachability register (octal) -.           |  xxxx = adjusted offset,
||      Log2(Polling interval) --.      |          |  yyyy = measured offset,
||                                \     |          |  zzzz = estimated error.
||                                 |    |           \
MS Name/IP address         Stratum Poll Reach LastRx Last sample               
===============================================================================

返回参数解析

接下来,具体到每行数据的结构:

.xxxx [yyyy] +/- zzzz

根据以上信息,你可以判断每个时间源的健康状况、系统与之同步的情况,以及时间同步的整体质量。

立即同步时间

(使系统时钟尽快与参考时间源同步,而非平滑调整):

chronyc makestep

列出跟踪记录

chronyc tracking

命令返回内容

Reference ID    : CA701FC5 (dns2.synet.edu.cn)
Stratum         : 2
Ref time (UTC)  : Sat Jun 01 08:28:26 2024
System time     : 0.000122217 seconds fast of NTP time
Last offset     : +0.000072612 seconds
RMS offset      : 212.469070435 seconds
Frequency       : 3.279 ppm slow
Residual freq   : +0.003 ppm
Skew            : 0.157 ppm
Root delay      : 0.016848214 seconds
Root dispersion : 0.001658257 seconds
Update interval : 1026.4 seconds
Leap status     : Normal

返回参数解析

从上述输出看,特别需要注意的是 RMS offset 值异常大,这通常意味着在过去有一段时间系统时间与NTP时间之间存在巨大差异,或者可能是测量误差。如果这个问题持续存在,应检查网络连接、时间源的可靠性以及Chrony的配置。

查看帮助信息

chronyc help

以上就是 Chrony 在 CentOS 上的基本安装方法和一些常用命令。根据实际情况和需求,可能还需要对 /etc/chrony.conf 配置文件进行适当的调整。

内网环境下的Chrony服务配置

在无法联网的服务器集群中,要使集群中的机器通过一台中心节点进行时间同步,这样只需要定期更新中心节点的服务器时间,即可完成整个集群的时间同步,可以采用如下步骤,设置Chrony来实现内部时间同步:

设置中心节点(时间服务器)

首先确保在充当时间服务器的中心节点上安装Chrony

配置Chrony

编辑Chrony的配置文件 /etc/chrony.conf,使其作为本地时间源而非外部NTP服务器。可以注释掉所有外部时间服务器的行,并添加本地作为时间源的声明。

server 127.127.1.0         # Local clock
fudge 127.127.1.0 stratum 10

这里,127.127.1.0 是本地时钟的表示,fudge 命令设置了该时钟的层级为10,意味着它是不太可靠的时间源,但在没有其他外部源的情况下是必要的。

启动并启用Chrony服务

sudo systemctl start chronyd
sudo systemctl enable chronyd

手动校准时间

如果中心节点的时间不准确,首先需要手动将其调整到尽可能准确的时间,可以使用 date 命令或 ntpdate(如果安装了)从一个已知准确的时间源临时同步。

设置集群中其他节点

server 192.168.1.100 iburst

iburst 参数告诉Chrony在启动时迅速进行多次查询以快速同步时间。

sudo systemctl restart chronyd

验证时间同步

在所有节点上,使用 chronyc sources -v 查看时间源状态,确保它们都指向了中心节点,并且状态为 * 表示已同步。

注意事项

总结

到此这篇关于Linux(CentOS)​​同步服务器chrony的安装配置和常用命令的文章就介绍到这了,更多相关Linux(CentOS)​​同步服务器chrony内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文