Ubuntu会在年底(2016年)自动调整为the秒吗?


43

英国广播公司报道:

除夕将在世界时钟上增加一秒钟,以便与地球自转保持同步。

这是否意味着我必须做任何事情,以便我的Ubuntu计算机能够及时了解该信息,还是会自动进行调整以使其不再出现故障?


2
你可能会喜欢这个视频(这还讨论了闰秒) youtube.com/watch?v=-5wpm-gesOY
托尔比约恩Ravn的安德森

1
@ThorbjørnRavnAndersen哦,那是汤姆·斯科特!
Ismael Miguel'1

Answers:


34

如果您的Ubuntu计算机侦听NTP并与Internet同步时间,则系统将自动针对时间差异进行自我调整。

尽管您的计算机可能不一定知道发生了leap秒的事实,但是当NTP服务器在整个Internet上推动更改时,它将捕获并记录该事件。

如果您不希望添加额外的秒数,则可以使用以下命令强制进行更新:

sudo ntpdate -s pool.ntp.org

这将自动执行地理位置定位,为您提供附近的服务器(减少延迟错误),而Ubuntu会根据您的时区进行调整(因此,如果服务器位于其他时区,则仍然可以)。或者,您可以使用ntp.ubuntu.com

请注意,如果您很不幸,那么您使用的所有时间服务器都无法正确处理the秒。这不太可能,但有可能。建议手动检查已知的良好信号源(模拟广播,可能是time.is)。


另外,如果您使用的是现代版本的Ubuntu,则有一个名为的内置实用程序timedatectl。默认情况下,它在启动时自动运行一次。因此,如果需要,快速重新启动可以强制进行同步。


1
在英国,仍然可以使用time.nist.gov。Ubuntu会调整我的时区报告。我认为所有时区都是如此
蒂姆(Tim)

2
@Tim是的,但是与美国的服务器同步具有更高的延迟=更高的错误率...因此可以工作,但最终结果不如使用更近的服务器精确。
Bakuriu

1
试试吧pool.ntp.org;这应该总是拿起相对较近的东西。
迈克尔·汉普顿

3
这个答案是有问题的。1.)如果您很不幸,那么您将使用的所有时间服务器都无法正确处理the秒。这不太可能,但有可能。2.)如果ntpd正在运行,则ntpdate同时运行会使其混淆。最好先停止它。更好的是,根本不运行ntpdate。3.)NIST时间服务器不需要来自Stack Exchange的额外流量;ntp.ubuntu.compool.ntp.org会更好。4.)英国实际上使用uk.pool.ntp.org,但pool.ntp.org仍会执行地理位置定位。
马特·诺德霍夫

我忘了一个。5.)如果您是ntpdate在随机时间服务器上运行,而又很不幸,您将使用同样无法正确处理the秒的服务器!NTP池可快速但不立即停用此类服务​​器。杰出的政府服务器也没有更好的表现。(尽管我认为这次是NIST。)
Matt Nordhoff

17

seconds秒由Linux内核自动处理,不需要重新启动或NTP同步即可保留实际时间。如果您查看系统日志,将会看到类似的内容

[263284.397894] Clock: inserting leap second 23:59:60 UTC

由于23:59:60这不是有效的Linux时间,因此您的时钟将到达00:00:00,然后退回到23:59:59。在此期间创建的任何对象(如文件)的日期都可能不一致。

就Linux时间(相对于实时)而言,leap秒不存在:

# date -d "2016-12-31 23:59:59" +%s
1483225199
# date -d "2017-01-01 00:00:00" +%s
1483225200

2
我的日志确实可以确认此答案。最近dmesg | grep 'leap second',我在我的主要16.04机器上运行,它显示[1153894.866672] Clock: inserting leap second 23:59:60 UTC。在开始时使用不同的数字,这也显示在我mini.iso用于测试的最小16.04 VM(从安装)中。这最小的系统没有ntpd运行,也不会有任何的的ntpopenntpd软件包安装。
伊莱亚·卡根

2
@EliahKagan当然,内核没有硬编码所有未来leap秒的列表。内核具有插入the秒的逻辑,但是必须告知内核要插入leap秒。除了NTP以外,我什么都不知道,它可以告诉内核插入a秒。请注意,如果已经指示内核插入a秒,那么在不重新引导的情况下卸载NTP将使内核处于插入insert秒的状态。
卡巴斯德(Kasperd)'17年

1
@kasperd我同意您的一般推理,但是我认为该系统中从未安装过NTP,而我只是在几天前(尽管超过了一天)就设置了NTP。我想到两种可能性。这是一个VMware虚拟机,尽管我还没有安装任何VMware驱动程序,但我相信Ubuntu已经有了。这样的驱动程序是否可能从主机上发现了the秒?除此之外,我希望安装过程中会涉及到NTP,尽管我不确定在重启后如何使NTP工作。我认为mini.iso它本身具有NTP,并且debian-installer使用它。
伊利亚·卡根

1
@EliahKagan,我没有检查,但是默认的ntp客户端可能是chrony
卡斯滕小号

2
@CarstenS事实证明systemd-timesyncd(8)一直在同步我最小系统的时钟。我没有想到这一点,并通过半意外grep -RPis '(?<!mou)ntp' /var/log发现:揭示了这14条syslog行,显示了恰好ntp以其名义存在的主机的时间同步。事后看来,我从来不知道自己拥有的神秘服务是systemd的一部分,这是有道理的。(顺便说一句,关于chrony的要点,我也没有检查过;虽然未安装。)
Eliah Kagan
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.