Um eine tatsächliche NTP-Implementierung zu verwenden, müssen Sie eine installieren und konfigurieren, chronyoder vielleicht ntpd. Tun Sie dies, wenn Sie eine Überwachung der Zeitleistung benötigen. Ich werde Chronik annehmen.
Fügen Sie iburstIhre pooloder server Zeilen in Ihrer Konfiguration hinzu, um die ersten paar Pakete zu beschleunigen. Es kann noch einige Minuten dauern, bis Sie sich stabilisiert haben. Seien Sie geduldig.
chronyc trackingzeigt den aktuellen Offset an. Haben Sie eine Vorstellung davon, was Ihre Anforderungen sind, kann eine Genauigkeit von einer Sekunde leicht einen Versatz von mehreren zehn Millisekunden tolerieren.
chronyc makestepnimmt sofort die aktuelle Einstellung vor. Normalerweise nicht notwendig.
Die einzige Möglichkeit, die Zeit mit timesyncd einzustellen, ist manuell : timedatectl set-time "2019-01-15 00:40:16". Es gibt keine robusten Mittel, um die Uhr zu disziplinieren und zu überwachen. Grundlegende NTP-Statistiken über timedatectl timesync-statussind eine relativ neue Sache. Ich glaube nicht, dass diese Option in Red Hat 7 oder Ubuntu 18.04 verfügbar ist.
systemd definiert "synchronisiert" als "wenn NTP jemals verwendet wurde, um Linux anzuweisen, die Uhr einzustellen". Insbesondere, wenn die Kerneldisziplin adjtimex () ohne Fehler zurückgibt und nicht den Ausgangszustand. Siehe den Quellcode systemd / src / basic / time-util.c.
Danke für deine Antwort, John. Also kann ich systemd-timesyncd deaktivieren und nur chrony verwenden? Ich bin nicht ganz sicher, ob ich verstehe, warum systemd eine NTP-Option hat und timeSYNCd heißt, wenn es die Zeit tatsächlich nicht synchronisieren kann. "Systemd definiert" synkronisiert "als, wenn der NTP-Kernel-Disziplinaufruf adjtimex () fehlerfrei zurückgegeben wird und nicht der Ausgangszustand" - das ist mir nicht sehr klar.
Manifest
1
@chevallier systemd-timesyncd ist sehr einfach und für die häufigsten Fälle ausreichend, z. B. für einen Server mit einer Echtzeituhr, der voraussichtlich rund um die Uhr im Netzwerk ausgeführt wird. Ihre ist kein häufiger Fall, daher sollten Sie sie wahrscheinlich nicht verwenden. chrony ist viel besser darin, mit Unterbrechungen der Netzwerkkonnektivität umzugehen und für längere Zeit heruntergefahren zu werden (z. B. ein Laptop) oder überhaupt keine RTC zu haben (z. B. eingebettete Geräte).
Michael Hampton
1
timesyncd ist ein SNTP-Client, der die Zeit festlegt, ohne sie richtig zu disziplinieren. Welches ist gut für grobe Genauigkeitsanforderungen. Wenn Sie die Zeitleistung messen oder bis zur Synchronisierung warten möchten, verwenden Sie ein vollständiges NTP wie chrony oder ntpd.
John Mahowald
10
Ohne weitere Pakete zu installieren ... Schalten Sie NTP aus, stellen Sie die Zeit manuell so ein, dass sie nahe genug ist , und schalten Sie NTP wieder ein:
Setzen Sie den NTP-Dienst inaktiv
$ timedatectl set-ntp false
Stellen Sie die Zeit manuell ein
Ja, das ist traurig, aber es funktioniert und Sie müssen sich nicht darum kümmern, etwas zu installieren und es zum Laufen zu bringen. Holen Sie sich die ungefähre lokale Zeit von der Wanduhr, Ihrem Telefon, dem Internet. Es muss nicht perfekt sein, weil wir ntp gleich wieder einschalten werden ...
$ sudo timedatectl set-time "2019-06-22 13:41:00"
Aktivieren Sie den NTP-Dienst
$ sudo timedatectl set-ntp true
Warten
john@mybox:~$ timedatectl
Local time: Sat 2019-06-22 13:49:53 AEST
Universal time: Sat 2019-06-22 03:49:53 UTC
RTC time: Sat 2019-06-22 03:49:54
Time zone: Australia/Sydney (AEST, +1000)
System clock synchronized: no
NTP service: active
RTC in local TZ: no
Die "Systemuhr synchronisiert: Nein" wird zu "Ja", wenn sie so eingestellt wurde, dass sie als "synchron" betrachtet werden kann.
Fehlerbehebung
$ cat /etc/systemd/timesyncd.conf
[Time]
NTP=pool.ntp.org
$ timedatectl timesync-status
Server: 13.210.208.89 (au.pool.ntp.org)
Poll interval: 8min 32s (min: 32s; max 34min 8s)
Packet count: 0
$ grep systemd-timesyncd /var/log/syslog | tail
Jun 22 14:13:09 meebox systemd-timesyncd[8333]: Timed out waiting for reply from 103.214.220.220:123 (au.pool.ntp.org).
Meine NTP-Pakete wurden von der Unternehmensfirewall blockiert.
Die Installation eines anderen Zeitsynchronisierungsdienstes war ebenfalls meine erste Idee, aber das ist nur eine Problemumgehung. Ich suchte nach einer echten Lösung. Das ist deine Antwort. Es klappt. Danke :-)
Ohne weitere Pakete zu installieren ... Schalten Sie NTP aus, stellen Sie die Zeit manuell so ein, dass sie nahe genug ist , und schalten Sie NTP wieder ein:
Setzen Sie den NTP-Dienst inaktiv
Stellen Sie die Zeit manuell ein
Ja, das ist traurig, aber es funktioniert und Sie müssen sich nicht darum kümmern, etwas zu installieren und es zum Laufen zu bringen. Holen Sie sich die ungefähre lokale Zeit von der Wanduhr, Ihrem Telefon, dem Internet. Es muss nicht perfekt sein, weil wir ntp gleich wieder einschalten werden ...
Aktivieren Sie den NTP-Dienst
Warten
Die "Systemuhr synchronisiert: Nein" wird zu "Ja", wenn sie so eingestellt wurde, dass sie als "synchron" betrachtet werden kann.
Fehlerbehebung
Meine NTP-Pakete wurden von der Unternehmensfirewall blockiert.
quelle