Wird sich Ubuntu zum Jahresende (2016) automatisch auf die Schaltsekunde einstellen?

43

Die BBC berichtet:

An Silvester wird eine zusätzliche Sekunde zu den Uhren der Welt hinzugefügt, um mit der Erdrotation synchron zu bleiben.

Bedeutet dies, dass ich irgendetwas tun muss, damit mein Ubuntu-Rechner mit dieser Situation Schritt hält, oder passt er sich automatisch so an, dass er keine Sekunde ausfällt?

Kaz Wolfe
quelle
2
Dieses Video (in dem auch Schaltsekunden besprochen werden) könnte dir gefallen. Youtube.com/watch?v=-5wpm-gesOY
Thorbjørn Ravn Andersen
1
@ ThorbjørnRavnAndersen Oh, das ist Tom Scott!
Ismael Miguel

Antworten:

34

Wenn Ihr Ubuntu-Rechner NTP abhört und die Zeit mit dem Internet synchronisiert, passt sich das System automatisch an die Zeitdifferenz an.

Ihr Computer ist sich möglicherweise nicht unbedingt der Tatsache bewusst, dass eine Schaltsekunde eingetreten ist. Er erfasst das Ereignis jedoch und zeichnet es auf, wenn NTP-Server die Änderung im gesamten Internet übertragen.

Wenn Sie nicht der Meinung sind, dass die zusätzliche Sekunde hinzugefügt wird, können Sie ein Update mit dem folgenden Befehl erzwingen:

sudo ntpdate -s pool.ntp.org

Dadurch wird automatisch eine Geo-Ortung durchgeführt, um einen Server in der Nähe zu erhalten (wodurch der Latenzfehler verringert wird). Ubuntu passt sich an Ihre Zeitzone an (wenn sich der Server also in einer anderen Zeitzone befindet, ist alles in Ordnung). Alternativ können Sie verwenden ntp.ubuntu.com.

Beachten Sie, dass, wenn Sie Pech haben, keiner der von Ihnen verwendeten Zeitserver die Schaltsekunde korrekt handhabt. Es ist unwahrscheinlich, aber möglich. Es wird empfohlen, manuell nach einer bekannten guten Quelle zu suchen (analoges Radio, möglicherweise time.is ).


Alternativ, wenn Sie eine moderne Version von Ubuntu verwenden, gibt es ein eingebautes Hilfsprogramm namens timedatectl. Standardmäßig wird dies beim Start einmal automatisch ausgeführt. Daher kann ein schneller Neustart bei Bedarf eine Synchronisierung erzwingen.

Kaz Wolfe
quelle
1
In Großbritannien funktioniert die Verwendung von time.nist.gov immer noch. Ubuntu passt die Berichte für meine Zeitzone an. Ich gehe davon aus, dass dies für alle Zeitzonen gilt
Tim
2
@Tim Ja, aber die Synchronisation mit einem Server in den USA hat eine höhere Latenzzeit = höhere Fehlerrate ... also funktioniert es, aber das Endergebnis ist ungenauer als bei Verwendung eines engeren Servers.
Bakuriu
1
Versuchen Sie es pool.ntp.orgstattdessen. Dies sollte immer etwas relativ Nahes aufgreifen.
Michael Hampton
3
Diese Antwort ist problematisch. 1.) Wenn Sie Pech haben, wird keiner der von Ihnen verwendeten Zeitserver die Schaltsekunde korrekt verarbeiten. Es ist unwahrscheinlich, aber möglich. 2.) Wenn ntpdläuft, ntpdateverwirrt es das gleichzeitige Laufen . Besser, es zuerst zu stoppen. Besser noch, renne überhaupt nicht ntpdate. 3.) Die NIST-Zeitserver benötigen keinen zusätzlichen Datenverkehr von Stack Exchange. ntp.ubuntu.comoder pool.ntp.orgwäre besser. 4.) Das Vereinigte Königreich tatsächlich nutzt uk.pool.ntp.org, sondern pool.ntp.orgwird Geolocation ohnehin durchführen.
Matt Nordhoff
Ich habe eins vergessen. 5.) Wenn Sie mit ntpdatezufälligen Zeitservern arbeiten und erneut Pech haben, werden Sie einen verwenden, der auch die Schaltsekunde nicht richtig handhabt! Der NTP-Pool deaktiviert solche Server schnell, aber nicht sofort. Und prominente Regierungsserver sind nicht besser. (Obwohl ich denke, dass die NIST diesmal waren.)
Matt Nordhoff
17

Schaltsekunden werden automatisch vom Linux-Kernel verarbeitet. Es ist kein Neustart oder keine NTP-Synchronisierung erforderlich, um die aktuelle Zeit zu halten. Wenn Sie in Ihrem Systemprotokoll nachsehen, sehen Sie etwas Ähnliches

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

Da 23:59:60es sich nicht um eine gültige Linux-Zeit handelt, erreicht Ihre Uhr und geht 00:00:00dann zurück zu 23:59:59. Alle in dieser Sekunde erstellten Objekte (wie Dateien) können inkonsistent datiert werden.

Für die Linux-Zeit (im Gegensatz zur Echtzeit) gibt es keine Schaltsekunden:

# date -d "2016-12-31 23:59:59" +%s
1483225199
# date -d "2017-01-01 00:00:00" +%s
1483225200
Dmitry Grigoryev
quelle
2
Meine Protokolle scheinen diese Antwort zu bestätigen. Ich bin kürzlich dmesg | grep 'leap second'auf meinem 16.04-Hauptcomputer gelaufen und es hat sich gezeigt [1153894.866672] Clock: inserting leap second 23:59:60 UTC. Dies wurde, nur mit unterschiedlichen Nummern am Anfang, auch auf meiner minimalen 16.04-VM angezeigt, die von installiert wurde mini.isound die ich zum Testen verwende. Auf diesem Minimalsystem wird weder ntpdausgeführt, noch ist eines der Pakete ntpoderopenntpd installiert.
Eliah Kagan
2
@EliahKagan Sicher hat der Kernel keine Liste aller zukünftigen Schaltsekunden, die fest codiert sind. Der Kernel hat die Logik, die Schaltsekunde einzufügen, aber irgendetwas muss dem Kernel mitteilen, dass eine Schaltsekunde eingefügt werden soll. Ich kenne nichts anderes als NTP, das den Kernel anweisen kann, eine Schaltsekunde einzufügen. Beachten Sie, dass, wenn der Kernel bereits angewiesen wurde, eine Schaltsekunde einzufügen, das Deinstallieren von NTP ohne Neustart den Kernel in einem Zustand belässt, in dem eine Schaltsekunde eingefügt wird.
Kasperd
1
@kasperd Ich bin mit Ihrer allgemeinen Argumentation einverstanden, aber ich glaube nicht, dass NTP jemals in diesem System installiert wurde, das ich nur wenige (wenn auch mehr als einen) Tage zuvor eingerichtet habe. Mir kommen zwei Möglichkeiten in den Sinn. Dies ist eine virtuelle VMware-Maschine, und obwohl ich keine VMware-Treiber installiert habe, glaube ich, dass Ubuntu bereits einige hat. Könnte ein solcher Fahrer von der Host-Maschine etwas über die Schaltsekunde erfahren haben? Abgesehen davon erwarte ich, dass NTP während der Installation beteiligt war, obwohl ich nicht sicher bin, wie dies bei Neustarts funktioniert. Ich denke mini.isoselbst hat NTP und dieser Debian-Installer benutzt es.
Eliah Kagan
1
@EliahKagan, ich habe nicht überprüft, aber der Standard-NTP-Client kann sein chrony.
Carsten S
2
@CarstenS Es stellt sich heraus, dass systemd-timesyncd (8) die Uhr meines Minimalsystems synchronisiert hat. Ich hatte nicht darüber nachgedacht und es durch einen halben Unfall herausgefunden: Diese 14 Syslog-Zeilengrep -RPis '(?<!mou)ntp' /var/log enthüllten Zeitsynchronisierungen von einem Host, der zufällig in seinem Namen ist. Im Nachhinein macht es Sinn, dass der mysteriöse Service, von dem ich nie wusste, dass er Teil von systemd ist. (Übrigens, ein guter Punkt zum Thema Chronik, den ich auch nicht überprüft hatte; er ist jedoch nicht installiert.)ntp
Eliah Kagan,