(Gedankenstütze)
Möglichkeiten zum Uhrzeit stellen:
Systemzeit ändern mit date
Dem Systemverwalter stehen zwei Varianten zur Eingabe der neuen Systemzeit zur Verfügung. Als erstes kann er die Zeit als einzige Zahl angeben, wobei die Reihenfolge der Ziffern wie folgt festgeschrieben ist:
<Monat><Tag><Stunde><Minute>[<Jahreszahl (2 Stellen)>][<Jahreszahl (2 Stellen)>][<Sekunden>]
Die drei ersten Angaben sind verbindlich, die weiteren werden, sodenn sie fehlen, durch die aktuellen Einstellungen ersetzt. Möchten Sie die Sekunden neu einstellen, so ist die Angabe der Jahreszahl mit vier Stellen erforderlich. Wählen Sie aus den 3 optionalen Parametern nur einen aus, wird dieser als Jahreszahl des aktuellen Jahrhunderts interpretiert.
Das nächste Beispiel setzt die Zeit auf den 01.07.2000, 14.58 Uhr:
root@sonne> date 070114582000
Sam Jul 14:58:00 MET 2000
Etwas verständlicher ist da die Verwendung eines Formatstrings, so wie es die Option -s ermöglicht. Welche Platzhalter enthalten sein können, wurde bereits im Abschnitt Weiteres zu Nutzerkommandos vorgestellt. Der folgende Aufruf setzt die Zeit wie im letzten Beispiel beschrieben:
root@sonne> date -s "Jan 1 12:00:00 2000"
Sam Jan 1 12:00:00 MET 2000
Warum gleich die ganze Eingabe vornehmen, wenn man die Uhr nur um ein paar Minütchen korregieren will? Hier kann das Schlüsselwort now, gefolgt von der Zeitspanne um die die Uhr vorgestellt werden soll, eingesetzt werden. Um bspw. die Systemzeit um 20 Minuten vor zu stellen, nützt diese Eingabe:
root@sonne> date; date -s "now 20 min"
Sam Jan 1 12:02:07 MET 2000
Sam Jan 1 12:22:07 MET 2000
Um nach obigem Vorgehen die Zeit zurückzustellen, ist dem Formatstring das Schlüsselwort ago nachzustellen:
root@sonne> date; date -s "now 20 sec ago"
Sam Jan 1 12:24:17 MET 2000
Sam Jan 1 12:23:57 MET 2000
Hardwareuhr setzen mit hwclock
Um Missverständnissen vorzubeugen: Unter Linux sind die beiden Kommandos clock und hwclock identisch, d.h. das Programm selbst ist »hwclock« und »clock« ist als Link auf dieses realisiert.
Mit hwclock lässt sich die Hardwareuhr auslesen und setzen. Das Kommando vermag sowohl die Systemzeit der Hardwarezeit anzupassen als auch umgekehrt, außerdem ermöglicht es mit Hilfe der Datei /etc/adjtime eine »automatische« Zeitkorrektur.
Die Option –show zeigt die lokale Hardwarezeit des Rechners an. Wird zusätzlich die Option –utc gewählt, handelt es sich um die Standardweltzeit (wenn die Hardwareuhr nach letzterer läuft, sind die beiden Angaben identisch):
root@sonne> hwclock --show
Mon Jun 26 13:10:41 2000 -0.811165 seconds
Um die Systemzeit nach der Hardwareuhr zu stellen, ist die Option –hctosys zu benutzen. Gleichzeitig wird ggf. die Zeitzone angepasst. Die entgegen gesetzte Richtung ermöglicht die Option –systohc, d.h. das Stellen der Hardwareuhr nach der Systemzeit.
Mit der Option –set kann eine beliebige gültige Zeit eingestellt werden. Die Option verlangt einen Formatstring, der mittels –date="Zeit" anzugeben ist. Die Syntax der Zeichenkette entspricht dabei der des Kommandos »date -s Zeit«. Um die Hardwareuhr 23 Stunden in die Zukunft zu versetzen, gibt man z.B. Folgendes ein:
root@sonne> hwclock --set --date="now 23 hours"
Einige Parameter von hwclock sind architekturabhängig und sie werden eher selten benötigt. Abschließend soll die Option –debug genannt sein, die bei der Fehlersuche recht hilfreich sein kann:
root@sonne> hwclock --debug
hwclock 2.4c/util-linux-2.10f
Using /dev/rtc interface to clock.
Last drift adjustment done at 962023508 seconds after 1969
Last calibration done at 962023508 seconds after 1969
Hardware clock is on UTC time
Assuming hardware clock is kept in UTC time.
Waiting for clock tick...
...got clock tick
Time read from Hardware Clock: 12:45:15
Hw clock time : 100/06/26 12:45:15 = 962023515 seconds since 1969
Mon Jun 26 14:45:15 2000 -0,484035 Sekunden
(Quelle:linuxfibel.de)