So verwenden Sie den timedatectl-Befehl unter Linux
Veröffentlicht: 2022-06-16 Mit dem Linux-Befehl timedatectl
können Sie Uhrzeit, Datum und Zeitzone für Ihre Systemuhr und Ihre Echtzeituhr einstellen. Nehmen Sie sich einen Moment Zeit, und wir zeigen Ihnen, wie das alles funktioniert.
Alles ist relativ
Die Behandlung der Zeit durch Ihren Computer ist eines der Dinge, von denen Sie erwarten könnten, dass sie ziemlich unkompliziert sind. Zumindest, bis man anfängt, sich damit auseinanderzusetzen.
Die Linux-Systemuhr zählt die Sekunden seit der Unix-Epoche. Dies war am 1. Januar 1970 um 00:00:00 UTC. UTC steht für koordinierte Weltzeit, wird aber normalerweise als koordinierte Weltzeit oder einfach als Weltzeit bezeichnet. Dies ist der Zeitstandard, nach dem die Welt die Zeit verwaltet und reguliert. Verschiedene Zeitzonen wenden einen Offset auf UTC an, um ihre Ortszeit zu erhalten. Einige Zeitzonen sind UTC voraus und andere dahinter.
Die Systemuhr in Linux-Computern ist softwarebasiert. Offensichtlich kann es nicht ausgeführt werden, wenn der Computer ausgeschaltet ist. Eine andere Uhr, eine batteriegepufferte Hardware-basierte Echtzeituhr, kann laufen, wenn der Computer ausgeschaltet ist. Sein Zweck ist es, der Systemuhr mitzuteilen, wie spät es ist, wenn Linux hochfährt. Es sei denn, der Zugriff auf einen Network Time Protocol (NTP)-Server ist möglich.
NTP-Server sind Server, die genaue Zeitinformationen an Computer liefern, die diese anfordern. Wenn Sie Ihren Computer oder Laptop hochfahren und kein Internetzugang besteht – oder er nicht für die Verwendung von NTP-Servern konfiguriert wurde – wird anstelle eines NTP-Servers die Echtzeituhr verwendet, um die Systemuhr vorzubereiten.
Die Systemuhr ist immer in UTC. Jede Anwendung, die die Ortszeit erfassen muss, muss:
- Greifen Sie auf die Systemuhr zu und erhalten Sie UTC
- Wissen Sie, in welcher Zeitzone es sich befindet, und wenden Sie den richtigen Offset an
- Berücksichtigen Sie, ob Sommerzeit gilt
Die Konvertierung von UTC in lokale Zeit erfolgt durch die Anwendung, nicht durch die Systemuhr. Genauer gesagt wird die Konvertierung von den Zeit- und Datumsbibliotheken durchgeführt, mit denen die Anwendung verknüpft ist. Deshalb ist es wichtig, dass Ihr Computer weiß, welche Zeitzone es ist, welche UTC-Zeit es ist, wie viele Sekunden seit der Unix-Epoche vergangen sind und ob Sommerzeit gilt.
Auf systemd-basierten Linux-Distributionen verwenden wir den Befehl timedatectl
, um diese Einstellungen und Werte anzuzeigen oder zu ändern.
Erste Schritte mit timedatectl
Um das aktuelle Datum und die Uhrzeit sowie andere Werte anzuzeigen, verwenden Sie den Befehl timedatectl
mit dem status
.
timedatectl-Status
Tatsächlich können Sie den Status löschen und erhalten immer noch die gleiche Ausgabe.
ZeitDatumGest
Beide Ausgabesätze zeigen:
- Ortszeit : Die Zeit, die der Computer gemäß seiner Zeitzone glaubt.
- Weltzeit : Die UTC-Zeit.
- RTC Time : Die Zeit, die die Echtzeituhr verwendet. Normalerweise ist dies UTC.
- Zeitzone : Informationen zur konfigurierten Zeitzone.
- System Clock Synchronized : Ob die Systemuhr mit einem NTP-Server synchronisiert ist.
- NTP-Dienst : Ob der NTP-Dienst des Computers aktiv ist.
- RTC in lokaler TZ : Ob die Echtzeituhr die lokale Zeit anstelle von UTC verwendet.
Sie können sehen, wie viele Zeitzonen der Befehl timedatectl
unterstützt, indem Sie Folgendes eingeben:
timedatectl list-timezones | WC-l
Das ist viel mehr als es Zeitzonen auf der Welt gibt. Wenn wir die Ausgabe an grep
und die Einträge für „America“ herausfiltern und diese an less
weiterleiten, können wir durch eine übersichtlichere Liste scrollen.
timedatectl list-timezones | grep "Amerika/" | weniger
Wenn Sie diese Liste durchsehen, werden Sie feststellen, dass „Amerika“ in seiner weitest möglichen Bedeutung verwendet wird. Als Zweites werden Sie bemerken, dass die meisten Einträge keine tatsächlichen Zeitzonen sind.
Einstellen der Zeitzone
Wenn Sie die ungefilterte Liste der von timedatectl
unterstützten Zeitzonen durchsehen, sehen Sie sowohl Orte als auch Zeitzonen. Um eine Zeitzone festzulegen, können Sie sie namentlich wie EST oder GMT angeben, oder Sie können einen Ort in derselben Zeitzone wie Sie auswählen, wie London oder New York.
Sie werden Ihre Zeitzone nicht oft zurücksetzen, aber vielleicht sind Sie umgezogen oder arbeiten für eine Weile und möchten Ihren Laptop lokalisieren. Wenn Sie Ihre Zeitzone zurücksetzen müssen, wählen Sie einen Ort in der gewünschten Zeitzone aus.
Wir stellen diesen Computer auf die Bergzeit ein, das ist die gleiche Zeitzone wie Edmonton. Wir werden dann sehen, wie sich die Einstellungen geändert haben.
timedatectl set-timezone "America/Edmonton"
ZeitDatumGest
Unsere Zeitzone wurde geändert, unsere Ortszeit hat sich geändert und unsere Abweichung von UTC hat zugenommen.
VERWANDT: So verwenden Sie Pipes unter Linux
Uhrzeit und Datum manuell einstellen
Auch wenn es möglich ist, Uhrzeit und Datum manuell einzustellen, ist dies normalerweise nicht erforderlich. Die Verwendung von Zeitsynchronisierung und NTP ist die bevorzugte Methode, um die Uhrzeit und das Datum Ihres Computers genau zu halten. Wenn Sie versuchen, das Datum oder die Uhrzeit Ihres Computers zu ändern, erhalten Sie wahrscheinlich eine Fehlermeldung, die Ihnen mitteilt, dass die Zeitsynchronisierung verwendet wird.
timedatectl Set-Zeit 10:30:00
Verwenden Sie diesen Befehl, um den Zeitsynchronisierungsdienst zu deaktivieren:
sudo systemctl stop systemd-timesyncd.service
Sie können die Uhrzeit, das Datum oder beides mit dem set-time-Operator timedatectl
setzen. Datumsangaben sind in der Reihenfolge Jahr-Monat-Tag JJJ-MM-TT und die Uhrzeit in Stunden-Minuten-Sekunden-Reihenfolge HH:MM:SS. Wir werden die Uhrzeit und das Datum mit diesem Befehl einstellen:
timedatectl set-time "2022-01-30 10:30:00"
Wir überprüfen dann, ob die Änderungen stattgefunden haben, indem timedatectl
verwenden.
ZeitDatumGest
Datum und Uhrzeit haben sich geändert. Beachten Sie außerdem, dass der Computer eine falsche UTC-Zeit verwendet. Wir werden auch darüber informiert, dass die Systemuhr nicht synchronisiert wird und der NTP-Dienst inaktiv ist.
Wenn Sie über einen Internetzugang verfügen, wird die Zeit abgerufen, sobald Sie den Zeitsynchronisierungsdienst wiederherstellen, und alle Details werden korrekt zurückgesetzt.
sudo systemctl start systemd-timesyncd.service
ZeitDatumGest
RTC: UTC oder LTZ?
Es ist möglich, Ihre Echtzeituhr auf Ihre lokale Zeitzone statt auf UTC einzustellen – möglich, aber nicht ratsam. Wenn Sie die Änderung vornehmen, sehen Sie eine Warnung über die schlimmen Auswirkungen, die dies in Zukunft auf Ihr System haben könnte.
Der Grund dafür, Ihnen diese Methode zu zeigen, ist, dass Sie möglicherweise auf eine Maschine stoßen, auf der sie seltsame Probleme mit ihren Zeiteinstellungen haben. So stellen Sie die Echtzeituhr auf UTC zurück.
Zuerst müssen wir es auf die lokale Zeitzone einstellen.
timedatectl set-local-rtc 1
Dann fragen wir timedatectl
nach seinem Status.
ZeitDatumGest
Ich denke, sie haben ihre Gefühle deutlich gemacht.
Verwenden Sie diesen Befehl, um die Echtzeituhr auf UTC zurückzusetzen:
timedatectl set-local-rtc 0
Stellen Sie es ein und vergessen Sie es
Sofern Sie bei der Installation Ihrer Linux-Distribution keinen Fehler gemacht haben oder umgezogen sind, gibt es normalerweise keinen Grund, die Einstellungen Ihres Systems und Ihrer Echtzeituhren zu ändern.
Stellen Sie die Systemuhr auf Ihre Zeitzone, die Echtzeituhr auf UTC ein und stellen Sie sicher, dass Ihr System einen Netzwerk-Zeitprotokollserver abfragt. Das ist der Standardzustand nach den meisten Installationen.
Wenn sie alle eingestellt sind, werden die Zeitsysteme Ihres Computers auf sich selbst aufpassen.
VERWANDT: So synchronisieren Sie Ihre Linux-Serverzeit mit Netzwerkzeitservern (NTP)