Linux/Zeit/Synchronisation

Aus Foxwiki
Version vom 20. Juli 2021, 16:06 Uhr von Dirkwagner (Diskussion | Beiträge) (Dirkwagner verschob die Seite Zeitsynchronisierung nach Linux:Zeitsynchronisierung, ohne dabei eine Weiterleitung anzulegen)

Zeitsynchronisierung

Eine genaue Zeiterfassung ist zu einem kritischen Bestandteil moderner Softwarebereitstellungen geworden. Ob es darum geht, sicherzustellen, dass Protokolle in der richtigen Reihenfolge aufgezeichnet werden oder Datenbankaktualisierungen korrekt angewendet werden, eine nicht synchronisierte Zeit kann zu Fehlern, Datenbeschädigungen und anderen schwierigen Problemen beim Debuggen führen.

Debian 10 verfügt über eine eingebaute und standardmäßig aktivierte Zeitsynchronisierung unter Verwendung des Standard-NTPD-Zeitservers, der von der . bereitgestellt wird ntpPaket. In diesem Artikel werden wir uns einige grundlegende zeitbezogene Befehle ansehen, überprüfen, ob ntpd aktiv und mit Peers verbunden ist, und erfahren, wie Sie den alternativen systemd-timesyncd-Netzwerkzeitdienst aktivieren.

Grundlegende Zeitbefehle

Der einfachste Befehl zum Ermitteln der Uhrzeit auf Ihrem Server ist date. Jeder Benutzer kann diesen Befehl eingeben, um Datum und Uhrzeit auszudrucken:

date
Wed 31 Jul 2019 06:03:19 PM UTC

In den meisten Fällen verwendet Ihr Server standardmäßig die UTC- Zeitzone, wie in der obigen Ausgabe hervorgehoben. UTC ist die koordinierte Weltzeit , die Zeit bei null Längengrad. Die konsequente Verwendung der Weltzeit reduziert Verwirrung, wenn Ihre Infrastruktur mehrere Zeitzonen umfasst.

Wenn Sie andere Anforderungen haben und die Zeitzone ändern müssen, können Sie die timedatectlBefehl dazu.

Listen Sie zunächst die verfügbaren Zeitzonen auf:

timedatectl list-timezones

Eine Liste der Zeitzonen wird auf Ihrem Bildschirm gedruckt. Sie können drücken SPACEnach unten blättern, und bnach oben zu blättern. Wenn Sie die richtige Zeitzone gefunden haben, notieren Sie sie und geben Sie ein qum die Liste zu verlassen.

Stellen Sie nun die Zeitzone mit ein timedatectl set-timezone, stellen Sie sicher, dass Sie den hervorgehobenen Teil unten durch die Zeitzone ersetzen, die Sie in der Liste gefunden haben. Sie müssen verwenden sudomit timedatectlum diese Änderung vorzunehmen:

sudo timedatectl set-timezone America/New_York

Sie können Ihre Änderungen durch Ausführen überprüfen datenochmal:

date
Wed 31 Jul 2019 02:08:43 PM EDT

Die Abkürzung der Zeitzone sollte den neu gewählten Wert widerspiegeln.

Nachdem wir nun wissen, wie wir die Uhr überprüfen und Zeitzonen einstellen, stellen wir sicher, dass unsere Zeit richtig synchronisiert wird.

Status von ntpd

Standardmäßig führt Debian 10 den Standard-NTPD-Server aus, um Ihre Systemzeit mit einem Pool externer Zeitserver zu synchronisieren. Wir können überprüfen, ob es mit dem läuft systemctlBefehl:

sudo systemctl status ntp
● ntp.service - Network Time Service
  Loaded: loaded (/lib/systemd/system/ntp.service; enabled; vendor preset: enabled)
  Active: active (running) since Wed 2019-07-31 13:57:08 EDT; 17min ago
    Docs: man:ntpd(8)
Main PID: 429 (ntpd)
   Tasks: 2 (limit: 1168)
  Memory: 2.1M
  CGroup: /system.slice/ntp.service
          └─429 /usr/sbin/ntpd -p /var/run/ntpd.pid -g -u 106:112
. . .

Das active (running)status zeigt an, dass ntpd ordnungsgemäß gestartet wurde. Um weitere Informationen über den Status von ntpd zu erhalten, können wir die ntpqBefehl:

ntpq -p
    remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
0.debian.pool.n .POOL.          16 p    -   64    0    0.000    0.000   0.000
1.debian.pool.n .POOL.          16 p    -   64    0    0.000    0.000   0.000
2.debian.pool.n .POOL.          16 p    -   64    0    0.000    0.000   0.000
3.debian.pool.n .POOL.          16 p    -   64    0    0.000    0.000   0.000

+208.67.72.50 152.2.133.55 2 u 12 64 377 39.381 1.696 0.674 +198.46.223.227 204.9.54.119 2 u 6 64 377 22.671 3.536 1.818 -zinc.frizzen.ne 108.61.56.35 3 u 43 64 377 12.012 1.268 2.553 -pyramid.latt.ne 204.123.2.72 2 u 11 64 377 69.922 2.858 0.604 +nu.binary.net 128.252.19.1 2 u 10 64 377 35.362 3.148 0.587 #107.155.79.108 129.7.1.66 2 u 65 64 377 42.380 1.638 1.014 +t1.time.bf1.yah 98.139.133.62 2 u 6 64 377 11.233 3.305 1.118 *sombrero.spider 129.6.15.30 2 u 47 64 377 1.304 2.941 0.889 +hydrogen.consta 209.51.161.238 2 u 45 64 377 1.830 2.280 1.026 -4.53.160.75 142.66.101.13 2 u 42 64 377 29.077 2.997 0.789 #horp-bsd01.horp 146.186.222.14 2 u 39 64 377 16.165 4.189 0.717 -ntpool1.603.new 204.9.54.119 2 u 46 64 377 27.914 3.717 0.939

ntpqist ein Abfragetool für ntpd. Das -pFlagge fordert Informationen zu dem NTP Server (oder p EERs) ntpd verbunden ist. Ihre Ausgabe wird etwas anders sein, sollte aber die Standard-Debian-Pool-Server sowie einige andere auflisten. Beachten Sie, dass es einige Minuten dauern kann, bis ntpd eine Verbindung herstellt.

Wechseln zu systemd-timesyncd

Es ist möglich, die integrierte systemd zu verwenden timesyncd- Komponente von , um ntpd zu ersetzen. timesyncd ist eine leichtere Alternative zu ntpd, die stärker in systemd integriert ist. Beachten Sie jedoch, dass die Ausführung als Zeitserver nicht unterstützt wird und dass die Techniken, die es verwendet, um Ihre Systemzeit synchron zu halten, etwas weniger ausgereift sind. Wenn Sie komplexe verteilte Echtzeitsysteme ausführen, möchten Sie vielleicht bei ntpd bleiben.

Um timesyncd zu verwenden, müssen wir zuerst ntpd deinstallieren:

sudo apt purge ntp

Starten Sie dann den timesyncd-Dienst:

sudo systemctl start systemd-timesyncd

Überprüfen Sie abschließend den Status des Dienstes, um sicherzustellen, dass er ausgeführt wird:

sudo systemctl status systemd-timesyncd
● systemd-timesyncd.service - Network Time Synchronization
  Loaded: loaded (/lib/systemd/system/systemd-timesyncd.service; enabled; vendor preset: enabled)
 Drop-In: /usr/lib/systemd/system/systemd-timesyncd.service.d
          └─disable-with-time-daemon.conf
  Active: active (running) since Wed 2019-07-31 14:21:37 EDT; 6s ago
    Docs: man:systemd-timesyncd.service(8)
Main PID: 1681 (systemd-timesyn)
  Status: "Synchronized to time server for the first time 96.245.170.99:123 (0.debian.pool.ntp.org)."
   Tasks: 2 (limit: 1168)
  Memory: 1.3M
  CGroup: /system.slice/systemd-timesyncd.service
          └─1681 /lib/systemd/systemd-timesyncd

Wir können benutzen timedatectlum das aktuelle Zeitverständnis von systemd auszudrucken:

timedatectl
              Local time: Wed 2019-07-31 14:22:15 EDT
          Universal time: Wed 2019-07-31 18:22:15 UTC
                RTC time: n/a
               Time zone: America/New_York (EDT, -0400)
System clock synchronized: yes
             NTP service: active
         RTC in local TZ: no

Dadurch werden die Ortszeit, die Weltzeit (die mit der Ortszeit identisch sein kann, wenn Sie nicht von der UTC-Zeitzone gewechselt haben) und einige Statusinformationen zur Netzwerkzeit ausgedruckt. System clock synchronized: yesbedeutet, dass die Uhrzeit erfolgreich synchronisiert wurde, und NTP service: activebedeutet, dass timesyncd aktiviert ist und ausgeführt wird.

Links

  1. https://www.eecis.udel.edu/%7Emills/ntp/html/index.html https://www.eecis.udel.edu/%7Emills/ntp/html/index.html
  2. http://www.pool.ntp.org/ http://www.pool.ntp.org/