Einführung
Eine genaue Zeitmessung ist zu einer entscheidenden Komponente moderner Softwarebereitstellungen geworden. Unabhängig davon, ob sichergestellt wird, dass die Protokolle in der richtigen Reihenfolge aufgezeichnet werden oder die Datenbankaktualisierungen korrekt angewendet werden, kann eine nicht synchronisierte Zeit zu Fehlern, Datenbeschädigungen und anderen schwerwiegenden Problemen beim Debuggen führen.
In Ubuntu 18.04 ist die Zeitsynchronisation integriert und standardmäßig über den Zeitsynchronisationsdienst von systemd aktiviert. In diesem Artikel werden einige grundlegende zeitbezogene Befehle behandelt, überprüft, ob timesyncd aktiv ist, und es wird erläutert, wie ein alternativer Netzwerkzeitdienst installiert wird.
Voraussetzungen
Bevor Sie mit diesem Tutorial beginnen, benötigen Sie einen Ubuntu 18.04-Server mit einem nicht root-fähigen, sudo-fähigen Benutzer, wie inthis Ubuntu 18.04 server setup tutorial beschrieben.
Grundlegende Zeitbefehle navigieren
Der grundlegendste Befehl zum Ermitteln der Zeit auf Ihrem Server istdate
. Jeder Benutzer kann diesen Befehl eingeben, um Datum und Uhrzeit auszudrucken:
date
OutputTue Jul 10 14:48:52 UTC 2018
In den meisten Fällen verwendet Ihr Server standardmäßig die ZeitzoneUTC, wie in der obigen Ausgabe hervorgehoben. UTC istCoordinated Universal Time, die Zeit bei null Grad Länge. Durch die konsequente Verwendung der Weltzeit können Sie Verwirrung stiften, wenn sich Ihre Infrastruktur über mehrere Zeitzonen erstreckt.
Wenn Sie andere Anforderungen haben und die Zeitzone ändern müssen, können Sie dazu den Befehltimedatectl
verwenden.
Listen Sie zunächst die verfügbaren Zeitzonen auf:
timedatectl list-timezones
Eine Liste der Zeitzonen wird auf Ihrem Bildschirm gedruckt. Sie könnenSPACE
drücken, um nach unten zu blättern, undb
, um nach oben zu blättern. Wenn Sie die richtige Zeitzone gefunden haben, notieren Sie sich diese und geben Sieq
ein, um die Liste zu verlassen.
Stellen Sie nun die Zeitzone mittimedatectl set-timezone
ein und ersetzen Sie den hervorgehobenen Teil unten durch die Zeitzone, die Sie in der Liste gefunden haben. Sie müssensudo
mittimedatectl
verwenden, um diese Änderung vorzunehmen:
sudo timedatectl set-timezone America/New_York
Sie können Ihre Änderungen überprüfen, indem Siedate
erneut ausführen:
date
OutputTue Jul 10 10:50:53 EDT 2018
Die Abkürzung für die Zeitzone sollte den neu gewählten Wert widerspiegeln.
Nachdem wir nun wissen, wie man die Uhr überprüft und die Zeitzonen einstellt, stellen wir sicher, dass unsere Zeit korrekt synchronisiert wird.
Zeitsynchronisation mit timedatectl steuern
Bis vor kurzem wurde die meiste Netzwerkzeitsynchronisation vonNetwork Time Protocol daemon oder ntpd durchgeführt. Dieser Dienst stellt eine Verbindung zu einem Pool anderer NTP-Server her, die ihn mit konstanten und genauen Zeitaktualisierungen versorgen.
Die Standardinstallation von Ubuntu verwendet jetzt timesyncd anstelle von ntpd. timesyncd stellt eine Verbindung zu denselben Zeitservern her und funktioniert ungefähr auf dieselbe Weise, ist jedoch leichter und stärker in systemd und die Arbeitsweise von Ubuntu integriert.
Wir können den Status von timesyncd abfragen, indem wirtimedatectl
ohne Argumente ausführen. In diesem Fall müssen Siesudo
nicht verwenden:
timedatectl
Output Local time: Tue 2018-07-10 10:54:12 EDT
Universal time: Tue 2018-07-10 14:54:12 UTC
RTC time: Tue 2018-07-10 14:54:12
Time zone: America/New_York (EDT, -0400)
System clock synchronized: yes
systemd-timesyncd.service active: yes
RTC in local TZ: no
Hiermit werden die Ortszeit, die Weltzeit (die möglicherweise mit der Ortszeit übereinstimmt, wenn Sie nicht von der UTC-Zeitzone umgeschaltet haben) und einige Informationen zum Netzwerkzeitstatus ausgedruckt. System clock synchronized: yes
zeigt an, dass die Zeit erfolgreich synchronisiert wurde, undsystemd-timesyncd.service active: yes
bedeutet, dass timesyncd aktiviert ist und ausgeführt wird.
Wenn timesyncd nicht aktiv ist, aktivieren Sie es mit timedatectl:
sudo timedatectl set-ntp on
Führen Sietimedatectl
erneut aus, um den Netzwerkzeitstatus zu bestätigen. Es kann eine Minute dauern, bis die eigentliche Synchronisierung erfolgt, aber schließlich sollten sowohlNetwork time on:
als auchNTP synchronized:
yes
anzeigen.
Wechsel zu ntpd
Obwohl timesyncd für die meisten Zwecke in Ordnung ist, kann es sein, dass einige Anwendungen, die auch nur geringfügige zeitliche Störungen aushalten, von ntpd besser bedient werden, da fortschrittlichere Techniken verwendet werden, um die Systemzeit konstant und schrittweise auf dem neuesten Stand zu halten.
Vor der Installation von ntpd sollten wir timesyncd deaktivieren:
sudo timedatectl set-ntp no
Stellen Sie sicher, dass timesyncd ausgeschaltet ist:
timedatectl
Suchen Sie in der Ausgabe nachsystemd-timesyncd.service active: no
. Dies bedeutet, dasstimesyncd
gestoppt wurde. Wir können jetzt das Paketntp
mitapt
installieren:
sudo apt update
sudo apt install ntp
ntpd wird nach der Installation automatisch gestartet. Sie können ntpd nach Statusinformationen abfragen, um zu überprüfen, ob alles funktioniert:
ntpq -p
Output remote refid st t when poll reach delay offset jitter
==============================================================================
0.ubuntu.pool.n .POOL. 16 p - 64 0 0.000 0.000 0.000
1.ubuntu.pool.n .POOL. 16 p - 64 0 0.000 0.000 0.000
2.ubuntu.pool.n .POOL. 16 p - 64 0 0.000 0.000 0.000
3.ubuntu.pool.n .POOL. 16 p - 64 0 0.000 0.000 0.000
ntp.ubuntu.com .POOL. 16 p - 64 0 0.000 0.000 0.000
+ec2-52-0-56-137 216.239.35.0 2 u 16 64 1 7.872 -2.137 1.485
+66.220.10.2 129.6.15.30 2 u 12 64 1 65.204 3.740 2.686
+block.steinhoff 209.51.161.238 2 u 11 64 1 33.364 1.710 3.586
+eterna.binary.n 216.229.0.50 3 u 11 64 1 35.330 2.821 2.839
+2604:a880:800:1 209.51.161.238 2 u 14 64 1 0.394 0.386 2.462
+ec2-52-6-160-3. 130.207.244.240 2 u 11 64 1 8.150 2.050 3.053
+mx.danb.email 127.67.113.92 2 u 13 64 1 63.868 1.539 2.240
*hydrogen.consta 129.6.15.28 2 u 12 64 1 2.989 1.755 2.563
+ntp-3.jonlight. 127.67.113.92 2 u 10 64 1 64.561 2.122 3.593
+undef.us 45.33.84.208 3 u 12 64 1 33.508 1.631 3.647
+ntp-3.jonlight. 127.67.113.92 2 u 8 64 1 64.253 2.645 3.174
2001:67c:1560:8 145.238.203.14 2 u 22 64 1 71.155 -1.059 0.000
+test.diarizer.c 216.239.35.4 2 u 11 64 1 64.378 4.648 3.244
2001:67c:1560:8 145.238.203.14 2 u 18 64 1 70.744 -0.964 0.000
alphyn.canonica 132.246.11.231 2 u 17 64 1 7.973 -0.170 0.000
+vps5.ctyme.com 216.218.254.202 2 u 10 64 1 65.874 1.902 2.608
ntpq
ist ein Abfragetool für ntpd. Das Flag-p
fragt nach Informationen zu den NTP-Servern (oderp-Sehern), mit denen ntpd eine Verbindung hergestellt hat. Ihre Ausgabe unterscheidet sich geringfügig, sollte jedoch die Standard-Ubuntu-Pool-Server und einige andere auflisten. Bedenken Sie, dass es einige Minuten dauern kann, bis ntpd Verbindungen herstellt.
Fazit
In diesem Artikel wird gezeigt, wie Sie die Systemzeit anzeigen, Zeitzonen ändern, mit Ubuntus Standard-Zeitsynchronisation arbeiten und ntpd installieren. Wenn Sie anspruchsvollere Zeitnehmungsanforderungen haben als hier beschrieben, können Sie aufthe offical NTP documentation verweisen und sich auchthe NTP Pool Project ansehen, eine globale Gruppe von Freiwilligen, die einen Großteil der weltweiten NTP-Infrastruktur bereitstellen.