Pflege der Systemzeit

Wichtung: 4

Beschreibung: Die Kandidaten sollen in der Lage sein, die Systemzeit zu pflegen und die Uhr über NTP zu synchronisieren.

Wichtigste Wissensgebiete:
Systemdatum und -zeit setzen.
BIOS-Uhr auf die korrekte UTC-Zeit setzen.
Konfiguration der richtigen Zeitzone.
NTP-Konfiguration, einschließlich der Korrektur von Gangabweichungen.

Liste wichtiger Dateien, Verzeichnisse und Anwendungen:
/usr/share/zoneinfo
/etc/timezone
/etc/localtime
/etc/ntp.conf
/etc/ntp.drift
date
hwclock
ntpd
ntpdate

Hardware-Uhr und Systemzeit

Unter Linux muss zwischen zwei verschiedenen Zeitgebern unterschieden werden. Zum einen gibt es die Hardware-Uhr, welche auch als RTC, RealTimeClock, CMOS- oder BIOS Uhr bekannt ist. Die Hardware-Uhr arbeitet unabhängig vom installierten Betriebssystem und kann unter anderem im BIOS geändert werden.

Zum anderen gibt es die Software-Uhr, die so genannte Systemzeit. Die Software-Uhr ist kernelgesteuert und zählt die Sekunden, die seit dem 1. Januar 1970, 0:00 Uhr vergangen sind. Nach dem Starten des Linux-Betriebssystem wird die Systemzeit einmalig nach der Hardware-Uhrzeit gestellt.

date = Anzeigen und Stellen der Systemzeit
hwclock = Anzeigen und Stellen der Hardware-Uhr

Unter Linux läuft die Systemzeit auf UTC (= GMT / Greenwich). Die richtige Zeit stellt man über die Zeitzone ein. Der symbolische Link /etc/localtime zeigt auf den passenden Eintrag im Verzeichniss /usr/share/zoneinfo (zb „/usr/share/zoneinfo/CET“ oder auch „usr/share/zoneinfo/Europe/Vienna“). Erstellt wird der Link mittels dem Befehl „ln -sf /usr/share/zoneinfo/CET /etc/localtime“. Alternativ kann die Zeitzoneninfodatei auch nach /etc/localtime kopiert werden (zb „cp /usr/share/zoneinfo/CET /etc/localtime“)

// Setzen der richtigen Systemzeit
# ln -s /usr/share/zoneinfo/Europe/Berlin /etc/localtime

//Systemzeit stellen
# date -s 07:13:30

// Datum setzen
# date -s 01/01/07 // 01.01.2007

// BIOS-Uhr einstellen
# hwclock --set --date="12/16/07 16:36:00"

Zeitsynchronisation mit NTP

NTP (Network Time Protocol) synchronisiert die Systemzeit mit der "Universal Time Coordinated" (UTC), unter anderem auch als "Greenwich Mean Time" (GMT) bezeichnet. Hierfür kann man einen netzinternen NTP-Server mit eigener Funkuhr aufsetzen und man bedient sich von Zeitservern im Internet.

Grundsätzlich gibt es zwei Möglichkeiten, die Systemzeit auf dem Linux-Rechner mittels NTP auf dem laufenden zu halten. Zum einen kann man mit dem ständig laufenden Daemon-Prozess ntpd oder mit dem cron-gesteuerten Aufruf von ntpdate die Systemzeit aktualisieren.

ntpd
nptd ist ein Dämon, der die Systemzeit in regelmäigen Abständen synchronisiert. ntpd greift auf die Konfigurationsdatei /etc/ntp.conf zurück, in der Angaben über die Server notiert werden, mit denen sich ntpd abgleichen kann. Diese könnte etwa so aussehen:

 // Auszug ntp.conf
server ntp.uni-trier.de iburst
server slug.ctv.es iburst
server ntp.maths.tcd.ie iburst
server ntp.cs.strath.ac.uk iburst

ntpdate
Mit dem Programm ntpdate kann man sich die aktuelle Uhrzeit von einem beliebigen Server im Netz holen. Die Syntax lautet:

ntpdate Zeitserver

Beispiel:

ntpdate -s ntp.uni-trier.de

In Verbindung mit Cron-Jobs kann man so in gewünschten Abständen die Zeit synchronisieren.