Kurzanleitung zur Einstellung der Zeit unter Linux

Zuerst muß entschieden werden, ob die Hardware-Uhr (CMOS-Uhr) des Rechners auf lokale Zeit oder auf UTC gestellt werden. UTC hat den Vorteil, daß es keine Sommerzeit und Winterzeit gibt, und die Hardware-Uhr damit nie wegen eines Wechsels auf Sommerzeit auf Winterzeit oder umgekehrt angepaßt werden muß. Unter Windows gibt es aber Probleme, wenn UTC verwendet wird.

Wer auf seinem Rechner nur Unix (Linux, FreeBSD, Solaris, ...) laufen hat, stellt seine Uhr am besten auf UTC. Wer auch manchmal Windows auf dem Rechner laufen läßt benutzt lieber lokale Zeit.

Einstellen der Uhr

Alle im folgenden beschriebenen Einstellungen sind mit dem root account unter Linux durchzuführen.
  1. Einstellen der lokalen Zeitzone
    Hier gibt es zwei Fälle zu unterscheiden: Vorsicht: Wer sein System mit einem Konfigurationstool administriert, sollte nicht selbst die symbolischen links setzen, da diese sonst u.U. vom Konfigurationstool wieder verändert werden.
  2. Einstellen der kernel-Uhr
    Nachdem die lokale Zeitzone eingestellt wurde, kann die kernel-Uhr mit dem Kommando date(1) gesetzt werden, z.B. durch Aufruf von
    date -s "Oct 13, 1999 14:04:05"
    wobei hier die lokale Zeit anzugeben ist. Wer möchte, kann die Zeit auch in UTC angeben:
    date -u -s "Oct 13, 1999 12:04:05"
    Beide Kommandos tun das gleiche und sind unabhängig von der Wahl der Zeitzone für die Hardware-Uhr. Welches Kommando man hier benutzt, spielt also keine Rolle.
  3. Einstellen der Hardware-Uhr
    Mit dem Kommando hwclock(8) kann die Hardware-Uhr gestellt werden. Es wird dazu die Uhrzeit vom kernel gelesen, die wir ja eben richtig gestellt haben, und in die Hardware-Uhr übertragen. Hier spielt die Wahl der Zeitzone für die Hardware-Uhr eine Rolle. Soll die Hardware-Uhr auf UTC gestellt werden, so ist daß Kommando
    hwclock -wu
    aufzurufen. Mit
    hwclock -w
    dagegen wird die Hardware-Uhr auf lokale Zeit gestellt.
  4. Konfiguration der boot scripts. Beim Booten wird die Software-Uhr nach der Hardware-Uhr gestellt. Dazu müssen die boot scripts wissen, ob die Hardware-Uhr UTC oder lokale Zeit enthält. In vielen Distributionen kann man das in einem admin-tool, z.B. YaST einstellen. Es wird dabei typischerweise eine shell variable GMT="u" für UTC oder GMT="" für lokale Zeit gesetzt.

    Es geht dabei darum, daß beim Booten entweder

    hwclock -su
    oder
    hwclock -s
    ausgeführt wird, jenachdem, ob die Hardware-Uhr auf UTC oder auf lokaler Zeit steht.
Nach diesen Einstellungen sollten alle Zeitangaben stimmen.