SelfLinux Linux im Netzwerk Netzwerkzeitprotokoll Abschnitt 2 | SelfLinux-0.13.0

| Netzwerkzeitprotokoll | Autor Formatierung GFDL

#### 2 Zeit Einstellen

Beim Systemstart, wenn der Kernel bootet, wird die aktuelle Uhrzeit aus der Echtzeituhr des Computers ausgelesen. Diese ist in einem Baustein auf dem Mainboard angebracht. Man erkennt diesen kleinen schwarzen Käfer oft an einer kleinen Uhrengrafik und der Beschriftung RTC (Real Time Clock, englisch für Echtzeituhr). Da dieser über eine Batterie gepuffert wird, stimmt bei einem Neustart also auch die Systemzeit in etwa.

Um die Zeit genau einzustellen, gibt es das Tool ntpdate. Dieses Programm nimmt Verbindung mit einem oder mehreren Timeservern auf und stellt die Systemuhrzeit ein. Dabei werden etliche Packete verschickt und empfangen und anschließend wird das halbe Antwortzeitmittel von der Uhrzeit abgezogen. Der Aufruf ist denkbar einfach: lediglich ein paar Servernamen sind als Parameter notwendig. Bei den Einstellungen sind die Standardwerte meistens passend.

Um die Zeit einzustellen, muß man über root-Rechte verfügen. Man schreibt dann beispielsweise:

root@linux ~# ntpdate clock.isc.org ptbtime1.ptb.de ntps1-0.cs.tu-berlin.de 12 Jan 21:12:38 ntpdate[2382]: adjust time server 192.53.103.103 offset 3.493504 sec

ntpdate hat die Linux-Kerneluhr eingestellt, und dabei die Uhrzeit um dreieinhalb Sekunden vorgestellt. Wenn man das Kommando jetzt noch ein paarmal ausführt, gewinnt man einen Eindruck, wie präzise dieser Mechanismus ist: in der Regel wird die Zeit dann nur noch um wenige Millisekunden verstellt, so genau funktioniert das! Um die Genauigkeit zu halten, könnte man ntpdate alle paar Stunden laufen lassen.

Nun kann man diese Uhrzeit noch in die BIOS-Echtzeituhr eintragen, damit man nach dem nächsten Neustart eine genauere Zeit hat. Dazu gibt es das Tool hwclock. Mit dem Parameter --systohc schreibt man die Systemzeit in die hardware clock (bei PCs also in den RTC des Mainboards). Der Aufruf sieht dann so aus:

root@linux ~# hwclock --systohc

Das dauert ein paar Sekunden, dann stimmt die Zeit in der Echtzeituhr.

Mit dieser Methode kann man also schon eine Genauigkeit erreichen, die für Heimanwender ausreichend ist. Hier hat man oft Internetwählverbindungen. Da bei Linux bei einer PPP Anwahl das Script /etc/ppp/ip-up ausgeführt wird, paßt hier ein Aufruf von ntpdate gut rein. Beispielsweise kann man hier einfügen:

Datei /etc/ppp/ip-up (Auszug)

    #Ein paar Server, die zur Synchronisation verwendet werden
    #  können. Bitte nicht unbedingt diese verwenden, sondern andere
    #  aus http://www.eecis.udel.edu/~mills/ntp/ auswählen
    /usr/sbin/ntpdate -bs \
                    clock.isc.org \
                    ptbtime1.ptb.de \
                    ntps1-0.cs.tu-berlin.de

Die Option -s gibt ab, dass man syslog für die Ausgaben verwenden möchte. Oft sieht man hier zusätzlich den Schalter -b, dieser gibt an, dass hier mit der Zeit gesprungen werden darf und sollte angegeben werden, wenn man ntpdate nur selten startet.