Was ist die empfohlene Methode zum Synchronisieren der Uhrzeit mit NTP?


18

Diese Frage wurde mehrmals in lokalisierter Form gestellt. Diese Frage soll die bevorzugte / beste Methode für die Synchronisierung der Systemuhr mithilfe von NTP darstellen.

Die Lösung sollte mehrere Probleme korrekt behandeln, z. B .:

  1. Korrigieren Sie die Zeit beim Hochfahren schnell, wenn die Uhr einen großen Versatz aufweist.

  2. Stellen Sie eine Konfiguration bereit, die Situationen schützt und / oder korrigiert, in denen die Uhr mit der Zeit manchmal einen großen Zeitversatz entwickeln kann.

  3. Eine robuste Lösung, die die Zeit schnell verarbeiten und synchronisieren kann, wenn bestimmte Probleme auftreten, z. B. "Der Zeitserver war während des Startvorgangs nicht verfügbar" oder "Das Internet ist während des Startvorgangs nicht verfügbar".

Die ideale Lösung wäre eine einzelne NTP-Konfigurationsdatei, die dies alles verarbeiten kann.

Verweise

Viele der Teile, die die "ultimative" Lösung bieten, sind auf der U & L-Website in Fragen wie diesen verteilt:

Es muss andere geben, aber diese sind es, die mir als relevant in den Sinn gekommen sind.



1
Zu Ihrer Information: Planen Sie eine umfassende Antwort darauf. Das Chat-Protokoll finden Sie ab chat.stackexchange.com/transcript/message/11350138#11350138
derobert

# 2 sollte nicht passieren, wenn ntpd läuft
dfc

@dfc - Dies kann passieren, wenn eine VM angehalten und später fortgesetzt wird. Es gibt auch andere Situationen, in denen dies passieren kann.
SLM

@slm "Entwickelt" bedeutet einen Zeitsprung nach dem Neustart der VM? Es scheint, dass ntpd innerhalb von ein paar Stunden nach dem Neustart den Versatz in den Griff bekommen sollte. Auf keinen Fall noch schlimmer machen. Was sind die anderen Situationen?
DFC

Antworten:


6

Da Sie mit ntp keine großen Zeitabweichungen korrigieren können (es sei denn, Sie haben ein paar Stunden Zeit, um aufzuholen oder zu verlangsamen), mache ich Folgendes:

Service ntpd zu stoppen
ntpdate us.pool.ntp.org
Service ntpd starten

Ich schreibe es einmal am Tag, jeden Tag. Ich habe ntpdate auch in ein Init-Skript eingefügt, das ausgeführt werden soll, bevor ntp nach dem Start gestartet wird, da Neustarts und Aus- und Wiedereinschalten die wahrscheinlichsten / häufigsten Ereignisse sind, die die Systemzeit beeinträchtigen.


Wenn ntpd erfolgreich ausgeführt wird, warum müssen Sie es stoppen und starten? Das scheint eine schreckliche Idee zu sein.
dfc

3
ntpdate funktioniert nicht, wenn ntpd läuft.
Grizly

4

Was Sie suchen, ist ntpdmit der --panicgateOption.

Die Panicgate-Option ermöglicht die erste Anpassung nach dem ntpdStart auf eine beliebige Größe. Dies ist genau für den Anwendungsfall, den Sie beschrieben haben, bei dem eine Maschine hochgefahren ist und deren Uhr extrem ungenau ist. Wenn ntpd mit aktivierter Option gestartet wird, kann es einen Moment dauern, bis ein Server gefunden und eine Synchronisierung hergestellt wird.

Diese Option löst Ihren Artikel Nr. 1.

# 2 ist Vanille ntpd. Ntpd speichert eine Drift-Datei, die die Geschwindigkeit angibt, mit der die Uhr Ihres Systems schief läuft.

# 3 ist auch das Gleiche wie # 1. Die --panicgateOption ist nicht auf das sofortige Starten von ntpd beschränkt, sondern auf "die erste Anpassung", wann immer diese Anpassung erfolgt.


ntpd eingeben --panicgate und dann Datum macht absolut nichts
AlxVallejo

Ändern Sie die Init-Dateien so, dass sie übergeben werden, -goder muss eine entsprechende Option festgelegt werden ntp.conf?
Jérôme

Ich habe gerade festgestellt, dass -ges in meiner Debian-Installation bereits standardmäßig verwendet wird, aber ich weiß nicht, in welcher init / config-Datei dies geschieht.
Jérôme

2

Verwenden Sie chronyd / chronyc anstelle von ntp / ntpdate. Es ist bereits eine Standardmethode in Fedora und wird vermutlich in RHEL 7.0 sein, sobald es fertig ist.

Die Dokumentation finden Sie unter http://chrony.tuxfamily.org/

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.