配置Linux实例Chrony服务
本文以CentOS 7.8和Alibaba Cloud Linux 2.1903 LTS 64位系统为例,介绍如何修改ECS实例的时区,以及如何开启、配置和使用Chrony服务,保证实例本地时间精确同步。
前提条件
已在实例安全组的入方向添加安全组规则并放行UDP 123端口。具体操作,请参见添加安全组规则。
背景信息
目前,所有地域下ECS实例默认采用CST(China Standard Time)时区,您也可以根据自己的业务需求为ECS实例设置或者修改时区。
CentOS 7和Alibaba Cloud Linux 2版本中都使用Chrony工具实现本地时间与标准时间同步。但CentOS 7与CentOS 6版本中的NTP服务不同,Chrony可以更快更准确地同步系统时钟,最大限度地减少时间和频率误差。
CentOS 7和Alibaba Cloud Linux 2都是基于Red Hat Enterprise Linux(RHEL)的Linux发行版,并且有相同的内核和命令行工具。在大多数情况下,CentOS 7和Alibaba Cloud Linux 2的命令操作是通用的。本文操作步骤适用于CentOS 7和Alibaba Cloud Linux 2。
Chrony包含了两个核心程序:
chronyd是后台运行的守护进程。用于调整内核中运行的系统时钟和时钟服务器同步。它确定计算机增减时间的比率,并对此进行修正。
chronyc提供了一个用户界面,用于监控性能并进行多样化的配置。它可以在chronyd控制的服务器上工作;也可以在一台不同的远程服务器上工作。
更多信息,请参见Chrony。
修改时区
远程连接Linux实例。
具体操作,请参见通过密码或密钥认证登录Linux实例。
执行以下命令,查看时区列表。
ls /usr/share/zoneinfo/<时区文件夹名称>
例如,执行以下命令,可以在时区列表中查看到
Hong_Kong
时区。ls /usr/share/zoneinfo/Asia
执行以下命令,修改时区。
ln -sf /usr/share/zoneinfo/Asia/Hong_Kong /etc/localtime
执行以下命令,更新硬件时钟(RTC)。
hwclock -w
执行以下命令,查看时区。
timedatectl status
查询结果如下所示,表示时区已修改为
Hong_Kong
。Local time: 一 2020-09-14 08:00:04 UTC Universal time: 一 2020-09-14 08:00:04 UTC RTC time: 一 2020-09-14 08:00:04 Time zone: Asia/Hong-Kong (UTC, +0000)
启用Chrony服务
远程连接Linux实例。
具体操作,请参见通过密码或密钥认证登录Linux实例。
依次执行以下命令,启动chronyd服务并设置开机自启动。
systemctl start chronyd.service systemctl enable chronyd.service
执行以下命令,查看本机时间同步状态,用于验证服务是否已启动。
chronyc tracking
执行以下命令,查看时间同步服务器列表。
chronyc -n sources -v
配置Chrony服务
远程连接Linux实例。
具体操作,请参见通过密码或密钥认证登录Linux实例。
执行以下命令,打开
chrony
配置文件。vim /etc/chrony.conf
找到
server <NTP服务器> minpoll 4 maxpoll 10 iburst
的信息后,按i
键编辑文件,在您暂时不需要的NTP服务器句首前添加符号#
进行隐藏。新添加一行NTP服务器信息,格式为:
server <需要添加的NTP服务器> minpoll 4 maxpoll 10 iburst
。完成编辑后按Esc
键并输入:wq
保存退出。关于更多NTP服务器信息,请参见阿里云NTP服务器。
依次执行以下命令,启动
chronyd
服务并设置开机自启动。systemctl start chronyd.service systemctl enable chronyd.service
执行以下命令,查看时间同步服务器列表。
chronyc -n sources -v
使用Chrony手动同步时钟
远程连接Linux实例。
具体操作,请参见通过密码或密钥认证登录Linux实例。
执行以下命令,进入Chrony工具。
chronyc
在Chrony工具内,执行以下命令,同步时钟。
makestep
说明您可以运行命令help获取Chrony常用命令的使用说明。