Verwaltung von Zeitzonen und Zeit: Befehle timedatectl
1. Arbeit mit Zeit in Linux
Warum ist es wichtig, die Zeit richtig einzustellen?
Stell dir vor, du versuchst, einen Fehler in den Systemprotokollen nachzuverfolgen, aber die Zeit in den Logs stimmt nicht mit der Realität überein. Oder noch schlimmer: Dein Server in einem internationalen Unternehmen zeigt unterschiedliche Zeiten für verschiedene Nutzer an. Die richtige Zeiteinstellung ist nicht nur praktisch: Sie ist entscheidend für den Betrieb der Systeme, die Synchronisation von Dateien, die Sicherheit (SSL-Zertifikate hängen von der Zeit ab) und die Koordination von Aufgaben.
In Linux kann die Zeit in zwei Formen dargestellt werden:
- Systemzeit (System Time) — die Zeit, die das Betriebssystem für seine Aufgaben verwendet.
- Hardwarezeit (Hardware Time) — wird auf der Hardwareebene (BIOS/UEFI) gespeichert.
Wir werden mit der Systemzeit mithilfe des Tools timedatectl
arbeiten.
2. Grundlagen des Befehls timedatectl
timedatectl
ist ein Kommandozeilen-Tool, das eine bequeme Schnittstelle zur Zeitverwaltung bietet. Es erlaubt dir:
- Die aktuellen Zeit- und Zeitzoneneinstellungen zu überprüfen;
- Systemzeit und Hardwarezeit einzustellen;
- Zeitzonen zu konfigurieren;
- Die Zeit-Synchronisation mit NTP (Network Time Protocol) zu aktivieren oder zu deaktivieren.
Überprüfung der aktuellen Zeit
Fangen wir mit etwas Einfachem an. Um die aktuelle Zeit und deren Einstellungen zu erfahren, benutze den Befehl:
timedatectl
Beispielausgabe:
Local time: Tue 2023-10-31 12:34:56 MSK
Universal time: Tue 2023-10-31 09:34:56 UTC
RTC time: Tue 2023-10-31 09:34:56
Time zone: Europe/Moscow (MSK, +0300)
System clock synchronized: yes
NTP service: active
RTC in local TZ: no
Felder erklärt:
- Local time: Lokale (System-)Zeit.
- Universal time: Zeit im UTC-Format (koordiniert universelle Zeit).
- RTC time: Hardwarezeit (auf BIOS/UEFI-Ebene).
- Time zone: Aktuelle Zeitzone.
- System clock synchronized: Ob die Uhrzeit per NTP synchronisiert ist.
- NTP service: Ob der Zeit-Synchronisationsdienst aktiv ist.
- RTC in local TZ: Ob die Hardwarezeit der lokalen Zeitzone entspricht.
Zeitzone einstellen und ändern
Manchmal, nach einem Umzug oder aufgrund von Projektanforderungen, musst du die Zeitzone ändern. Zum Beispiel war dein Server auf New York eingestellt, nun soll er jedoch Nutzer in Moskau bedienen. Zeitzonen findest du im Verzeichnis /usr/share/zoneinfo
.
Um die verfügbaren Zeitzonen anzuzeigen, benutze:
timedatectl list-timezones
Die Ausgabe wird eine riesige Liste sein, etwa so:
Africa/Abidjan
America/New_York
Asia/Tokyo
Europe/Moscow
Eine neue Zeitzone kannst du mit folgendem Befehl einstellen:
sudo timedatectl set-timezone Europe/Moscow
Überprüfe, ob die Zeitzone geändert wurde:
timedatectl
Praktische Aufgabe
- Finde die aktuelle Zeitzone deines Servers heraus.
- Wechsle die Zeitzone zu UTC.
- Stelle die Zeitzone wieder auf deine lokale ein.
3. Manuelle Zeiteinstellung
Obwohl moderne Server die Zeit normalerweise über NTP synchronisieren, muss die Zeit manchmal manuell eingestellt werden. Dies ist nützlich, wenn der Server in einem isolierten Netzwerk ohne Internetzugang betrieben wird.
Zuerst kannst du die aktuelle Systemzeit überprüfen:
date
Du kannst eine neue Zeit mit folgendem Befehl einstellen:
sudo timedatectl set-time "YYYY-MM-DD HH:MM:SS"
Zum Beispiel, um die Zeit auf den 1. November 2023, 12:00 Uhr einzustellen:
sudo timedatectl set-time "2023-11-01 12:00:00"
Überprüfe danach das Ergebnis erneut:
timedatectl
Einstellung der Hardware-Zeit
Die Hardware-Zeit (auch bekannt als RTC — Real-Time Clock) wird auf der BIOS/UEFI-Ebene verwaltet. Wenn die Hardware-Zeit nicht mit der Systemzeit synchronisiert ist, kann dies beim Neustart Probleme verursachen. Für die Synchronisation führe aus:
sudo hwclock --systohc
Dieser Befehl stellt die Hardware-Zeit basierend auf der Systemzeit ein.
Falls du das Gegenteil machen möchtest (die Systemzeit mit der Hardware-Zeit synchronisieren), benutze:
sudo hwclock --hctosys
4. Zeitsynchronisierung über NTP
Die Zeitsynchronisierung über NTP ist eine Methode, die aktuelle Zeit automatisch mit Hilfe von entfernten Servern zu halten. In den meisten modernen Linux-Distributionen ist NTP standardmäßig aktiviert.
Überprüfung der NTP-Einstellungen
Führe aus:
timedatectl status
Falls NTP deaktiviert ist (die Zeile NTP service zeigt inactive
), aktiviere es mit:
sudo timedatectl set-ntp true
Um NTP zu deaktivieren, führe aus:
sudo timedatectl set-ntp false
Falls NTP nicht funktioniert, stelle sicher, dass die entsprechenden Dienste aktiv sind. Zum Beispiel, in Systemen mit systemd-timesyncd
überprüfe, ob der Service aktiv ist:
sudo systemctl status systemd-timesyncd
5. Praktische Übung
Aufgabe
- Setze die Zeitzone deines Systems auf UTC.
- Stelle die Systemzeit manuell auf 12:00:00, 1. November 2023, ein.
- Aktiviere die Zeitsynchronisation über NTP.
Überprüfung
Nach der Durchführung der Aufgabe stelle sicher, dass:
- Deine Systemzeit den festgelegten Parametern entspricht.
- Die Zeitzone auf UTC geändert wurde.
- Der NTP-Dienst aktiv ist.
6. Häufige Fehler und Stolpersteine
„RTC in local TZ: no“ entspricht nicht der lokalen Zeitzone. Viele Systeme bevorzugen die Verwendung von UTC für die Hardwarezeit, um Verwirrung bei der Arbeit in verschiedenen Zeitzonen zu vermeiden. Das ist kein Fehler, sondern eher eine Präferenz.
Zugriffsfehler beim Ändern der Zeit. Der Befehl
timedatectl
erfordert Superuser-Privilegien. Stelle sicher, dass dusudo
verwendest.NTP-Synchronisation wird nicht aktiviert. Überprüfe, ob der NTP-Dienst auf deinem Server läuft. Zum Beispiel, für
systemd-timesyncd
, führe aus:sudo systemctl start systemd-timesyncd
Warum ist das in der Praxis wichtig?
- Serveradministration. Die Konfiguration von Zeit und Zeitzonen ist wichtig für die korrekte Arbeit von Logs, Datensynchronisation und Aufgabenplanung.
- Arbeiten mit internationalen Projekten. Die Verwendung von UTC als Standard hilft, Verwirrung bei der Arbeit mit Kunden aus verschiedenen Zeitzonen zu vermeiden.
- Bewerbungsgespräche und Zertifizierungen. Fragen zu
timedatectl
und Zeitverwaltung kommen in Prüfungen und Interviews für Systemadministrator-Positionen vor.
Jetzt bist du bereit, die Zeit in Linux zu verwalten, als würdest du deine Deadlines verwalten: souverän, präzise und ohne unangenehme Überraschungen.
GO TO FULL VERSION