freeX: Tips & Tricks
|
Uhrzeit manuell korrigieren
Mit dem Befehl »date« und »hwclock« kann man die Uhrzeit korrigieren. Wenn man es nicht "richtig" macht, ändert man zwar eine Uhrzeit, erzeugt jedoch unter Umständen nicht den gewünschten Effekt.
Um das Verhalten zu verstehen, muß man wissen, daß ein Unix-artiges System über mehrere Uhren verfügt, die vollkommen unabhängig voneinander laufen. Da ist zum einen die Hardware-Uhr. Sie wird durch einen Quarz auf dem Motherboard getrieben und durch ein Akku gepuffert, wenn der Rechner ausgeschaltet ist. Für diese Uhr ist das Programm »hwclock« zuständig.
Dann gibt es die Systemuhr, die üblicherweise beim Systemstart mit der Hardware-Uhr synchronisiert wird. Anschließend läuft sie vollkommen unabhängig von dieser. Für diese Uhr ist das Programm »date« zuständig. Wird die Uhrzeit ausgegeben, greifen überdies Konvertierungsmechanismen, mit der die Zeit an die jeweilige Zeitzone angepaßt wird.
Wenn die Zeit auf einem Unix-artigen Rechner korrigiert werden muß, sollte daher zweistufig vorgegangen werden. Zuerst wird mit »date« die Systemuhr gesetzt. Wenn diese wieder zufriedenstellend läuft, wird die Hardware-Uhr mit der Systemuhr synchronisiert - umgekehrt zum Systemstart. Dieses findet bei vielen Systemen beim ordnungsgemäßen Herunterfahren des Rechners statt.
Der Befehl »date -s 'MM/dd hh:mm'« setzt die Systemuhr auf den dd.MM. um hh:mm Uhr. Dabei werden jeweils zwei Stellen für Monat, Tag, Stunde und Minute erwartet. Anschließend wir die Hardware-Uhr synchronisiert mit dem Befehl »hwclock --systohc«. Wenn die Hardware-Uhr jedoch mit Coordinated Universal Time (UTC) läuft, was bei vielen Unix-artigen Systemen der Fall ist, muß dieses zusätzlich mitgeteilt werden, so daß der Befehl »hwclock --utc --systohc« lautet.
Beim Rechnerstart wird übrigens in einem der Start-Skripte der Befehl »hwclock --hctosys« bzw. »hwclock --utc --hctosys« ausgeführt, um die Systemuhr mit der Hardware-Uhr zu synchronisieren.