Linux/Zeit/Synchronisation: Unterschied zwischen den Versionen
K Dirkwagner verschob die Seite Zeitsynchronisierung nach Linux:Zeitsynchronisierung, ohne dabei eine Weiterleitung anzulegen |
|
(kein Unterschied)
|
Version vom 20. Juli 2021, 16:06 Uhr
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.