“新”内核版本(自 Linux 2.6.26 以来)支持台湾时钟,但 Ubuntu(在我的情况下是 18.04 LTS)上的 systemd 实现似乎忽略了它。
如何配置 systemd NTP 以保持 TAI 偏移更新且正确?
答案1
UTC 和 TAI 之间的差异是一个保存闰秒的文件。请参阅 的内容/usr/share/zoneinfo/leap-seconds.list
。systemd 对此没有(/应该没有?)影响。
您需要配置 NTP 以包含它(注意:NTP v4.2.6 改变了 leapfile 的使用方式)。请参阅Ubuntu NTP 手册第 5 部分和“leapfile”选项。来自 NTP 手册页:
跳跃文件
leapfile
此命令加载 NIST 闰秒文件并初始化下一个闰秒时间、到期时间和 TAI 偏移的闰秒值。可以使用 ftp 以 ASCII 文件形式直接从 NIST 国家时间服务器获取该文件
pub/leap-seconds.list
。当 ntpd 处理 leapfile 指令或者当 ntp 检测到 leapfile 已经改变时,就会扫描 leapfile。ntpd 每天检查一次,查看 leapfile 是否已经改变。
因此这可能会增加/etc/ntpd.conf
如下内容:
leapfile /usr/share/zoneinfo/leap-seconds.list
另请参阅手册页更新飞跃。
update-leap 将验证本地系统上的当前文件,并在必要时更新闰秒定义文件。通常,使用 ntp.conf(5) 中的“leapfile”指令可以找到该文件。但是,也可以在命令行上指定备用位置。
请注意,这会破坏 POSIX 兼容性,因为它会引入“23:59:60”这样的时间。