Raspberry Pi Uhrzeit stimmt nicht: So korrigierst du die Zeitzone

Als Video ansehen
Bereitgestellt über YouTube

Raspberry Pi Uhrzeit stimmt nicht: So korrigierst du die Zeitzone

Stimmt die Uhrzeit deines Raspberry Pis nicht? Dann ist in den meisten Fällen wahrscheinlich die Zeitzone falsch konfiguriert: Da der Pi aus Großbritannien stammt, besitzt er standardmäßig eine andere Zeitzone, als hierzulande üblich. Dadurch kann ein Versatz von einer Stunde erklärt werden.

Ist es ein Problem, wenn die Uhr nicht stimmt?

Abgesehen davon, ob es dich persönlich vielleicht stört, kann eine falsche Systemzeit weitere Probleme verursachen. Gerade auf einem Server – dazu wird der Pi ja oft genutzt. Beispielsweise stimmt der Zeitstempel von Protokollen nicht. Dies mag zunächst trivial erscheinen, doch im Fehlerfall kann es die Fehlersuche erschweren. Bestimmte Aufgaben wie z.B. Cron-Jobs starten dadurch nicht zur erwarteten Zeit – je nachdem, was diese Ausführen, kann das unerwünschte Ergebnisse haben. Aber auch beim Programmieren gibt es Stolpersteine: Datenbankabfragen speichern falsche Zeitstempel und liefern unerwartete Ergebnisse. Bestimmte Programme wie rsync können ebenfalls nicht wie gewünscht funktionieren.

Zu beachten ist auch, dass manche Protokolle auf Zeitstempel basieren – etwa Authentifizierungstickets. Dadurch funktionieren Remotezugriffsprotokolle möglicherweise nicht. Auch bestimmte Programme die z.B. Replikationen nutzen, benötigen korrekte Zeitstempel. Bei größeren Abständen kann es weitreichendere Probleme geben: Etwa werden SSL-Zertifikate nicht akzeptiert, da diese aufgrund eines falschen Zeitstempels fälschlicherweise als ungültig erkannt werden.

Je nach Anwendungsfall können Datum und Uhrzeit auch sekundär sein. Dennoch empfiehlt es sich, beides korrekt zu setzen. Selbst wenn es im Moment keine Rolle spielt: In ein paar Monaten ändert sich das vielleicht, weil du an einem neuen Projekt arbeitest. Im schlechtesten Falle kostet das dann einige Zeit und Nerven. Daher lieber gleich ändern, meist ist es nicht viel Arbeit.

So erkennst du, ob die Uhrzeit stimmt

Bei der grafischen Oberfläche ist es denkbar einfach: Die Uhr rechts oben zeigt nicht die aktuelle Zeit, sondern eine versetzte.

Ist keine Desktopumgebung installiert – was gerade im Serverbetrieb eher die Regel statt Ausnahme ist – kann man den Befehl date verwenden.

$ date
Sa 25. Sep 16:45:12 BST 2021

In diesem Beispiel haben wir einen Versatz von einer Stunde, d.H. es ist in Wirklichkeit 17:45 statt 16:45. Welche Zeitzone derzeit eingestellt ist, lässt sich mithilfe des Befehls timedatectl herausfinden:

$ timedatectl
               Local time: Sa 2021-09-25 17:50:38 BST
           Universal time: Sa 2021-09-25 16:50:38 UTC
                 RTC time: n/a
                Time zone: Europe/London (BST, +0100)
System clock synchronized: yes
              NTP service: active
          RTC in local TZ: no

Hier sind wir also in London, wodurch sich der Versatz erklärt.

Zeitzone korrigieren

Auf dem Raspberry Pi kann man auch das raspi-config Werkzeug benutzen. Im Hintergrund nutzt dies das Programm tzdata, welches unter Debian für die Zeitzonen zuständig ist. Raspberry Pi basiert auf Debian und greift daher darauf zurück. Wir können daher – übrigens auch auf jedem Debian-System – das Paket neu konfigurieren. Dies öffnet ein Auswahlmenü, in dem sich Kontinent und Zeitzone auswählen lassen:

sudo dpkg-reconfigure tzdata

Im Auswahlmenü wählen wir zuerst Europa und bestätigen mit <Enter>. Anschließend Berlin auswählen. Wenn du „B“ eingibst, springt das Menü zum ersten Eintrag mit diesem Buchstaben – so ersparst du dir, zigfach auf die Pfeiltasten zu drücken. Schlussendlich mit <Enter> bestätigen.

Auf der Konsole siehst du nun die neue Zeitzone sowie die entsprechende dortige lokale Zeit:

$ sudo dpkg-reconfigure tzdata

Current default time zone: 'Europe/Berlin'
Local time is now:      Sat Sep 25 18:54:42 CEST 2021.
Universal Time is now:  Sat Sep 25 16:54:42 UTC 2021.

Zeitzohne ohne interaktives Fenster korrigieren – z.B. für Skripte, die ohne manuelles Auswählen ausgeführt werden sollen

Wenn ihr das ganze ohne interaktive Benutzerführung durchführen möchtet (etwa automatisiert in einem Skript), kann man timedatectl verwenden. In folgendem Beispiel setzen wir die Zeitzone zurück auf London, prüfen dies, setzen sie anschließend zurück auf unsere deutsche Zeit (Europe/Berlin) und verifizieren dies ebenfalls:

pi@testpi:~ $ sudo timedatectl set-timezone Europe/London
pi@testpi:~ $ timedatectl
               Local time: Sa 2021-09-25 17:55:30 BST
           Universal time: Sa 2021-09-25 16:55:30 UTC
                 RTC time: n/a
                Time zone: Europe/London (BST, +0100)
System clock synchronized: yes
              NTP service: active
          RTC in local TZ: no
pi@testpi:~ $ sudo timedatectl set-timezone Europe/Berlin
pi@testpi:~ $ timedatectl
               Local time: Sa 2021-09-25 18:55:51 CEST
           Universal time: Sa 2021-09-25 16:55:51 UTC
                 RTC time: n/a
                Time zone: Europe/Berlin (CEST, +0200)
System clock synchronized: yes
              NTP service: active
          RTC in local TZ: no

Falls man die gewünschte Zeitzone nicht kennt – also eine außerhalb Deutschlands einstellen möchte – lässt sich eine Liste wie folgt ausgeben:

timedatectl list-timezones

Leave a Reply