date, hwclock und adjtimex – Zeit und Datum auf einem Linux System

date – Anzeigen und setzen von Systemzeit und Datum
hwclock – Abfragen und setzen der Hardware Uhr
adjtimex – Ein Werkzeug um die Zeitvariablen des Kernels zu veraendern.

Auf Linux Systemen sind normalerweise 2 Uhren vorhanden. Die Hardware Uhr und die System Uhr im Kernel. Die Hardware Uhr wird bei Inbetriebnahme des Systems eingestellt, die Batterie auf dem Mainboard sorgt dafuer das die Uhr auch weiterlaeuft wenn der Rechner ausgeschaltet ist. Beim Bootvorgang setzt der Kernel die Systemzeit erstmal anhand der Hardware Uhr. Wenn jetzt nichts weiter passiert laufen die zwei Uhren bestenfalls parallel zueinander und ihre Uhrzeiten sind Identisch.

Die Systemzeit kann mit:

date

als normaler Benutzer angezeigt werden.

Wenn aber z.b bei laufendem System die System Uhr des Kernels mit einer externen Zeitquelle abgeglichen wird (NTP Protokoll) dann kann das zu unterschieden zwichen den zwei Uhren fuehren. Beim Booten liest der Kernel die Hardware Uhr aus und stellt danach die Systemuhr ein.

Die Hardware Uhr kann mit:

hwclock

angezeigt werden. Fuer den Zugriff auf die Hardware Uhr werden aber grundsaetzlich Root Rechte benoetigt. Soll die Systemzeit in die Hardwareuhr geladen werden geht dies so:

hwclock --systohc

Um die Hardwareuhrzeit als Systemzeit zu laden verwendet man:

hwclock --hctosys

Um die Harwareuhrzeit mittels hwclock manuell zu setzen, verwendet man die Option –set:

hwclock --set --date="1/23/15 09:10:35"

Was aber wenn die Hardware Uhr bei Systemen die selten neu gestartet werden ueber laengere Zeitraeume sehr weit voneinander abweichen? Wenn dann beim Neustart die Zeit der Hardware Uhr als Systemzeit geladen wird kann das eine Menge Aerger verursachen. Um so was zu vermeiden ist es laut Quellen moeglich im Vorfeld adjtimex zu verwenden um so Hardwarezeit und Systemzeit Syncron zu halten. Dabei wird adjtimex 2x in moeglichst grossem zeitlichen Abstand ausgefuehrt. Aus den dabei gewonnen Daten werden, werden die die Werte „suggested tick“ und „freq“ errechnet. Mit diesen Daten muss adjtimex dann bei jedem Systemneustart ausgefuehrt werden.

Quelle und Vorgehensweise:
Verwendung von adjtimex
Verwendung von adjtimex

In der Debian-Wheezy Paketbeschreibung von adjtimex heisst es: „Fuer eine Maschine, die mit dem Internet ist oder mit einem Praezisionsoszilator oder einer Funkuhr ausgestattet ist, besteht der beste Weg zur Aufrechterhaltung einer genauen Systemzeit in der Verwendung von NTP. Fuer eine Isolierte oder nur selten mit dem Netz verbundene Maschine koennen sie statt dessen adjtimex verwenden und die Systemzeit der CMOS Uhr als Referenzbasis stellen“