So richten Sie die Zeitsynchronisation unter Ubuntu ein 18.04

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-pfragt 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.