Aufrechterhaltung der genauen Systemzeit mit timedatectl
und chronyd
In diesem Schritt lernen Sie, wie Sie die genaue Systemzeit mithilfe des Befehls timedatectl
verwalten und die Rolle des Dienstes chronyd
verstehen. Eine genaue Zeitmessung ist entscheidend für die Protokollierung, Sicherheit und viele Netzwerkdienste.
1. Verwenden von timedatectl
zur Verwaltung der Systemzeit und Zeitzonen:
Der Befehl timedatectl
bietet einen Überblick über die aktuellen zeitrelevanten Systemeinstellungen, einschließlich der lokalen Zeit, der Weltzeit (UTC), der RTC-Zeit, der Zeitzone und des NTP-Synchronisationsstatus.
Überprüfen wir die aktuellen Zeiteinstellungen Ihres Systems:
timedatectl
Sie sollten eine Ausgabe ähnlich dieser sehen (die genaue Uhrzeit und das Datum spiegeln Ihre aktuelle Systemzeit wider):
Local time: Sun 2025-06-15 21:46:11 EDT
Universal time: Mon 2025-06-16 01:46:11 UTC
RTC time: Mon 2025-06-16 01:46:10
Time zone: America/New_York (EDT, -0400)
System clock synchronized: yes
NTP service: active
RTC in local TZ: no
Sie können alle verfügbaren Zeitzonen mit der Option list-timezones
auflisten:
timedatectl list-timezones | less
Drücken Sie q
, um less
zu beenden. Die Zeitzonen werden basierend auf der IANA (Internet Assigned Numbers Authority) Zeitzonendatenbank benannt, typischerweise nach Kontinent/Ozean und dann nach der größten Stadt.
Um die Zeitzone des Systems zu ändern, verwenden Sie die Option set-timezone
. Ändern wir beispielsweise die Zeitzone in America/Phoenix
. Sie benötigen dafür sudo
-Rechte.
sudo timedatectl set-timezone America/Phoenix
Überprüfen Sie nun die Änderung:
timedatectl
Sie sollten sehen, dass die Zeitzone auf America/Phoenix
aktualisiert wurde.
Sie können die aktuelle Systemzeit auch manuell mit der Option set-time
einstellen. Das Format lautet "YYYY-MM-DD hh:mm:ss", aber Sie können das Datum oder die Uhrzeit weglassen. Stellen wir die Uhrzeit auf 09:00:00
(für das aktuelle Datum) ein.
sudo timedatectl set-time 09:00:00
Überprüfen Sie die Zeitänderung:
timedatectl
Schließlich aktiviert oder deaktiviert die Option set-ntp
die NTP-Synchronisierung für die automatische Zeitanpassung. Sie nimmt true
oder false
als Argument. Deaktivieren wir die NTP-Synchronisierung für einen Moment (wir werden sie später wieder aktivieren).
sudo timedatectl set-ntp false
Überprüfen Sie den NTP-Dienststatus:
timedatectl
Sie sollten NTP service: inactive
sehen.
2. Verstehen und Konfigurieren des Dienstes chronyd
:
Der Dienst chronyd
ist ein Daemon, der die Real-Time Clock (RTC) des Systems genau hält, indem er sie mit NTP (Network Time Protocol) Servern synchronisiert. Er ist der Standard-NTP-Client in Red Hat Enterprise Linux.
Die Konfigurationsdatei für chronyd
ist /etc/chrony.conf
. Standardmäßig verwendet er öffentliche NTP-Server. In einem realen Szenario könnten Sie ihn so konfigurieren, dass er interne NTP-Server verwendet.
Betrachten wir die Standarddatei chrony.conf
.
cat /etc/chrony.conf
Sie sehen Zeilen, die mit server
oder pool
beginnen, die die NTP-Quellen definieren. Die Option iburst
wird empfohlen, da sie schnell vier Messungen vornimmt, um eine genauere initiale Synchronisierung zu erreichen.
Der stratum
einer NTP-Zeitquelle gibt ihre Qualität an. Ein stratum 0
ist eine Referenzuhr, stratum 1
ist direkt an eine Referenzuhr angeschlossen, und stratum 2
synchronisiert sich von einem stratum 1
-Server.
Da systemctl
in dieser Containerumgebung nicht verfügbar ist, können wir chronyd
nicht direkt neu starten, um Konfigurationsänderungen anzuwenden. Wir können die Konfigurationsänderung jedoch simulieren, indem wir die Datei ändern.
Aktivieren wir die NTP-Synchronisierung mit timedatectl
erneut.
sudo timedatectl set-ntp true
Überprüfen Sie den NTP-Dienststatus erneut:
timedatectl
Sie sollten NTP service: active
sehen.
Der Befehl chronyc
fungiert als Client für den Dienst chronyd
. Sie können ihn verwenden, um den Synchronisationsstatus zu überwachen. Der Befehl chronyc sources
zeigt die aktuellen Zeitquellen und ihren Synchronisationsstatus an.
chronyc sources -v
Die Ausgabe zeigt Details zu den NTP-Quellen. Das Sternchen *
im Feld S
(Source state) gibt die Quelle an, mit der sich chronyd
derzeit synchronisiert.
.-- Source mode '^' = server, '=' = peer, '#' = local clock.
/ .- Source state '*' = current best, '+' = combined, '-' = not combined,
| / 'x' = may be in error, '~' = too variable, '?' = unusable.
|| .- xxxx [ yyyy ] +/- zzzz
|| Reachability register (octal) -. | xxxx = adjusted offset,
|| Log2(Polling interval) --. | | yyyy = measured offset,
|| \ | | zzzz = estimated error.
|| | | \
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
^* 100.100.61.88 1 5 377 16 +1824us[+2180us] +/- 85ms
...output omitted...
Diese Ausgabe bestätigt, dass Ihr System seine Zeit aktiv mit einem NTP-Server synchronisiert.