12.3. 迁移到 chrony
在 Red Hat Enterprise Linux 7 中,用户可以在 ntp 和 chrony 之间进行选择,以确保准确计时。有关 ntp 和 chrony、ntpd 和 chronyd 之间的区别,请参阅 ntpd 和 chronyd 之间的差别。
从 Red Hat Enterprise Linux 8 开始,不再支持 ntp。chrony 默认启用。因此,您可能需要从 ntp 迁移到 chrony。
在大多数情况下,从 ntp 迁移到 chrony 是非常直接的。程序、配置文件和服务的相应名称为:
| ntp 名称 | chrony 名称 |
|---|---|
| /etc/ntp.conf | /etc/chrony.conf |
| /etc/ntp/keys | /etc/chrony.keys |
| ntpd | chronyd |
| ntpq | chronyc |
| ntpd.service | chronyd.service |
| ntp-wait.service | chrony-wait.service |
通过使用 -q 选项或 -t 选项,chronyd 可以替代 ntpdate 和 sntp 程序(包含在 ntp 发布中)。可在命令行中指定配置以避免读取 /etc/chrony.conf。例如:如下所示运行 chronyd 可以替代运行 ntpdate ntp.example.com:
# chronyd -q 'server ntp.example.com iburst'
2018-05-18T12:37:43Z chronyd version 3.3 starting (+CMDMON +NTP +REFCLOCK +RTC +PRIVDROP +SCFILTER +SIGND +ASYNCDNS +SECHASH +IPV6 +DEBUG)
2018-05-18T12:37:43Z Initial frequency -2.630 ppm
2018-05-18T12:37:48Z System clock wrong by 0.003159 seconds (step)
2018-05-18T12:37:48Z chronyd exiting
ntpstat 工具程序之前包含在 ntp 软件包中,且只支持 ntpd。现在它支持 ntpd 和 chronyd。它现在包括在 ntpstat 软件包中。
12.3.1. 迁移脚本 复制链接链接已复制到粘贴板!
名为 ntp2chrony.py 的 Python 脚本包含在 chrony 软件包文档中(/usr/share/doc/chrony)。这个脚本会自动将现有的 ntp 配置转换为 chrony。它支持 ntp.conf 文件中最常用的指令和选项。所有在转换中忽略的行都会作为注释包含在生成的 chrony.conf 文件中以便用户进行核查。在 ntp 密钥文件中指定但未在 ntp.conf 中被标记为可信密钥的密钥会作为注释出现在生成的 chrony.keys 文件中。
默认情况下,该脚本不会覆盖任何文件。如果 /etc/chrony.conf 或 /etc/chrony.keys 已经存在,使用 -b 选项可以重新命名文件以作为备份。这个脚本支持其他选项。--help 选项输出所有支持选项。
在 ntp 软件包中提供了一个默认 ntp.conf 调用脚本示例:
# python3 /usr/share/doc/chrony/ntp2chrony.py -b -v
Reading /etc/ntp.conf
Reading /etc/ntp/crypto/pw
Reading /etc/ntp/keys
Writing /etc/chrony.conf
Writing /etc/chrony.keys
本例中唯一忽略的指令是 disable monitor,它在 noclientlog 指令中有一个等同的 chrony 项。它包括在默认 ntp.conf 中只是用于缓解一个安全工具。
生成的 chrony.conf 文件通常包含大量与 ntp.conf 中限制行对应的 allow 指令。如果您不想使用 chronyd 作为 NTP 服务器,从 chrony.conf 中删除所有 allow 指令。