(Fast) jeder Rechner verfügt heute über
eine eingebaute Uhr, die über eine eingebaute
Batterie die Uhrzeit auch im ausgeschalteten
Zustand weiterlaufen läßt, so das immer eine korrekte Systemzeit
eingestellt ist. Das Betriebssystem
kümmert sich während der Laufzeit um die
richtige Zeit und liest die Zeit einmalig
beim Systemstart aus der Hardware-Uhr aus.
Die Zeit des Betriebssystems läßt sich mit dem
Kommando date anzeigen.
bash-2.03$ date
Sat Jan 22 17:54:00 CET 2000
|
Die Uhrzeit, die vom Uhrenchip auf dem Motherboard geliefert wird, ist normalerweise
ausreichend genau. Wenn diese Zeit um mehrere Monate oder Jahre nach dem Einschalten des
Rechners abweicht, sollten Sie die Batterie auf dem Motherboard wechseln (lassen).
Das Kommando date, so wie oben gezeigt, zeigt den Wochentag, den Monat,
den Tag, die Uhrzeit, die Zeitzone sowie das Jahr an.
Ein weiteres Kommando, welches auf die Systemzeit zugreift, ist das Kommando
time. Dieses zeigt allerdings nicht die Zeit an, wie man vielleicht
vermuten könnte, sondern dient dazu, die Zeit zu bestimmen, die bestimmte Komandos zur
Ausführung benötigen.
$ time sleep 60
real 1m0.057s
user 0m0.000s
sys 0m0.000s
|
Wundern Sie sich nicht, dieses Kommando benötigt eine Minute. Das Kommando
sleep „schläft“ in diesem Beispiel 60 Sekunden,
time ermittelt diese Zeit... nicht sehr sinnvoll, aber
ein Beispiel
;-). Wenn Sie sich einen neuen Rechner zugelegt
haben und Ihre Freunde wissen, daß Sie diesen unter GNU/Linux betreiben, werden diese
vielleicht fragen, wie lange es dauert, einen neuen Kernel zu übersetzen. Sie können
diese Zeit jetzt mit dem Kommando
time ermitteln.
Natürlich kommt es auch darauf an, welche Treiber Sie in den Kernel einbinden
wollen und welche Kernel-Version Sie übersetzen... doch das ist ein anderes
Thema...
Um die Systemzeit auf Ihrem Rechner zu korrigieren, können Sie das Kommando
als Superuser benutzen. date hat eine Vielzahl von
Optionen, um die Zeit zu stellen, Sie können die gewünschte Zeit in allen
nur denkbaren Formaten angeben. Hier einmal die Übersicht der Optionen:
bash-2.03$ date --help
Usage: date [OPTION]... [+FORMAT]
or: date [OPTION] [MMDDhhmm[[CC]YY][.ss]]
Display the current time in the given FORMAT, or set the system date.
-d, --date=STRING display time described by STRING, not `now'
-f, --file=DATEFILE like --date once for each line of DATEFILE
-I, --iso-8601[=TIMESPEC] output an ISO-8601 compliant date/time string.
TIMESPEC=`date' (or missing) for date only,
`hours', `minutes', or `seconds' for date and
time to the indicated precision.
-r, --reference=FILE display the last modification time of FILE
-R, --rfc-822 output RFC-822 compliant date string
-s, --set=STRING set time described by STRING
-u, --utc, --universal print or set Coordinated Universal Time
--help display this help and exit
--version output version information and exit
FORMAT controls the output. The only valid option for the second form
specifies Coordinated Universal Time. Interpreted sequences are:
%% a literal %
%a locale's abbreviated weekday name (Sun..Sat)
%A locale's full weekday name, variable length (Sunday..Saturday)
%b locale's abbreviated month name (Jan..Dec)
%B locale's full month name, variable length (January..December)
%c locale's date and time (Sat Nov 04 12:02:33 EST 1989)
%d day of month (01..31)
%D date (mm/dd/yy)
%e day of month, blank padded ( 1..31)
%h same as %b
%H hour (00..23)
%I hour (01..12)
%j day of year (001..366)
%k hour ( 0..23)
%l hour ( 1..12)
%m month (01..12)
%M minute (00..59)
%n a newline
%p locale's AM or PM
%r time, 12-hour (hh:mm:ss [AP]M)
%s seconds since 00:00:00, Jan 1, 1970 (a GNU extension)
%S second (00..60)
%t a horizontal tab
%T time, 24-hour (hh:mm:ss)
%U week number of year with Sunday as first day of week (00..53)
%V week number of year with Monday as first day of week (01..52)
%w day of week (0..6); 0 represents Sunday
%W week number of year with Monday as first day of week (00..53)
%x locale's date representation (mm/dd/yy)
%X locale's time representation (%H:%M:%S)
%y last two digits of year (00..99)
%Y year (1970...)
%z RFC-822 style numeric timezone (-0500) (a nonstandard extension)
%Z time zone (e.g., EDT), or nothing if no time zone is determinable
By default, date pads numeric fields with zeroes. GNU date recognizes
the following modifiers between `%' and a numeric directive.
`-' (hyphen) do not pad the field
`_' (underscore) pad the field with spaces
Report bugs to <bug-sh-utils@gnu.org>.
|
In der Praxis werden Sie die Zeit aber nur selten korrigieren müssen, so daß
an dieser Stelle ein Beispiel reichen sollte. Sehen Sie sich nochmal die Hilfe
zu
date an, in der zweiten Zeile finden Sie folgendes:
or: date [OPTION] [MMDDhhmm[[CC]YY][.ss]].
Die gewünschte Zeit kann im Format MM (Month - Monat), DD (Day - Tag), hh (Hour - Stunde)
und mm (Minute) angegeben werden. Die anderen Werte können Sie ignorieren, diese
werden Sie nur selten gebrauchen. Um die Zeit drei Tage und eine halbe Stunde
zurückzustellen, benutzen Sie folgendes Kommando:
linux:/home# date
Sun Jan 23 10:47:59 CET 2000
linux:/home# date 01201017
Thu Jan 20 10:17:00 CET 2000
|
Wenn Sie über einen Internetanschluß
verfügen, können Sie dies auch Programmen
wie zum Beispiel rdate überlassen.
rdate übernimmt die Zeit von einem Server, der über eine
Funkuhr
(DCF77-Signal) verfügt, aus dem Netz.
Sie können dieses Kommando in
die Scripte, die Sie zum Aufbau der
Internetverbindung benutzen, einbinden. Wenn Ihr
Rechner ständig oder immer zu
bestimmten Zeiten mit dem Internet verbunden ist, können
Sie rdate auch über
das Programm cron aufrufen,
indem Sie es in die crontab des Superusers eintragen.
Rufen Sie dazu das Kommando crontab mit der Option
-e (edit - verändern) auf:
bash-2.03$ su
Password:
linux:/home# crontab -e
|
Ergänzen Sie nun die Einträge in dieser Datei um folgende Zeile:
10 01 * * * /usr/sbin/rdate time.fu-berlin.de > /dev/null
|
Ein solcher Eintrag stellt jede Nacht um zehn Minuten nach eins die Systemzeit
nach den Angaben des Servers
time.fu-berlin.de neu.
Benutzen Sie bitte einen Server in Ihrer Nähe. Viele Provider bieten einen
solchen Service an, fragen Sie einfach nach.
Wenn Sie keinen geeigneten Server finden können, sollten Sie die Server der
Physikalisch-Technischen Bundesanstalt
(PTB) benutzen. Wie Sie vielleicht wissen,
wird von der PTB das amtliche
Zeitsignal ausgesendet, welches von DCF-77-Empfängern
(Funkuhren) empfangen werden kann. Seit Anfang 2000 stellt die PTB diesen Dienst
auch übers Internet zur Verfügung. Sie können die beiden öffentlichen Zeitserver
der PTB als ptbtime1.ptb.de und ptbtime2.ptb.de
erreichen.
Um die vorhin in die Vergangenheit beförderte Systemzeit zu korrigieren, können
Sie rdate natürlich auch auf der Kommandozeile ausführen:
linux:/home# /usr/sbin/rdate time.fu-berlin.de
Sun Jan 23 10:49:22 2000
|