Serveruhrzeit automatisch einstellen mit NTPDATE

Wer hat nicht schon mal festgestellt das die von unseren Rechnern zur  Verfügung gestellten Uhren eine ziemlich große Zeitdifferenz aufweisen wenn Sie einige Zeit gelaufen haben.

Da sich das Linuxsystem von der Hardware eines Rechners diese Zeit holt, ergeben sich zwangsläufig Differenzen zur tatsächlichen Zeit.

Die wenigsten von uns benötigen eine Zeit, die absolut übereinstimmend mit der offiziellen Zeit einer Atomuhr ist, eine kleine Abweichung kann schon da  sein.

Diese Abweichung ist so gering, das es für unseren Linuxserver keine Rolle spielt. Wir holen uns dazu am besten eine Uhrzeit von einem offiziellen Timeserver.Über das NTP sind wir in der Lage unseren Rechner mit einer Atomuhr die Ihre Zeit im Internet veröffentlicht abzufragen.

 


Eine Liste der derzeit verfügbaren Stratum 2 Server gibt es hier: http://ntp.isc.org/bin/view/Servers/StratumTwoTimeServers

Erläuterung:

Stratum 1 Server sind die Server von denen die Stratum 2 Server ihre Zeiten beziehen. Die Hierarchie setzt sich weiter nach unten fort. Wenn wir unsere mittels eines Stratum 2 Servers abgeglichene Zeit in unserem lokalen Netzwerk zur Verfügung stellen, haben wir einen Stratum 3 Server aufgebaut usw.


Nun gilt es mindestens 2 Timeserver zu finden, die aktiv und offen verfügbar sind. Ich persönlich neige dazu mindestens einen Server eine Fachhochschule zu befragen, da ich davon ausgehe,das hier eine gewisse Pflege vorhanden ist -ohne die anderen Timeserver hier schlecht zu reden.


Ich entscheide mich für die folgenden 2 Server:

tick.fh-augsburg.de
time2.one4vision.de


Es sollten mindestens 2 Server gewählt werden um möglichst zu vermeiden,das bei einer Fehlstellung eines Timeservers eine falsche Systemzeiteingestellt wird. Dazu kann dem Befehl ntpdate mitgegeben werden, daser die Zeiten der  beiden Server kontrolliert und bei einer maximalen Abweichung (die einstellbar ist) ein Stellen der Systemzeit unterdrückt.

Voraussetzung:

ntpdate ist installiert, der Rechner hat ständigen Zugriff auf das Internet.

Sollte dies nicht der Fall sein, einfach nachinstallieren mit:

apt-get install ntpdate


Um nun unseren Server erstmalig abzugleichen bietet sich folgender Befehl an.

 

Achtung: Mit der Option -b wird der Rechner angewiesen die Systemzeit sofort zu ändern. Hier können also Zeitsprünge passieren. Dieser Befehl sollte also  während des Bootens ausgeführt werden, oder einmalig beim installieren eines Systems, damit ein kontrollierter "Zeitsprung"ausgelöst wird, ohne einen User oder einen Dienst zu stören.


Die Option -b führt diesen Sprung aus, wenn die Zeitdifferenzgrößer als + / - 128 Millisekunden sein sollte.

ntpdate -b tick.fh-augsburg.de time2.one4vision.de


Sofern beide Timeserver aktiv sind ist nun die Systemzeit eingestellt.

Um das System nun ständig auf dem aktuellen Stand der Zeit zu halten sollte die Uhrzeit automatisiert abgeholt und eingestellt werden. Erfahrungswerte zeigen, dass es die moderne Computerhardware möglich macht,das ein Hochwertiges Motherboard innerhalb von 24 Stunden eine Abweichung von 10 Sekunden fabriziert. Dies kann je nach Anwendung schon erhebliche Probleme mit sich bringen.


Um unseren hochtechnologisierten Freunden also beizubringen möglichst richtig zu ticken, erstellen wir nun einen Eintrag in unserem Crontab, das die Zeit jede Nacht um 3 Uhr morgens updatet und das Ergebnis in unser Standard Log-File schreibt.
Der Eintrag in die Crontab könnte so aussehen:

# Zeitabgleich jede Nacht um 3 Uhr
00 3 * * * /usr/sbin/ntpdate -b tick.fh-augsburg.de time2.one4vision.de >> /var/log/messages


Durch Beobachtung der Systemzeit kann der Intervall immer noch geändert werden - wie schon bemerkt, die Abweichungen sind von Hardware zu Hardwareunterschiedlich. Die Ausgabe in /var/log/messages sieht wie folgt aus:

18 Oct 07:57:44 ntpdate2496: ntpdate 4.2.0a@1:4.2.0a+stable-2-r Fri Aug 26 10:30:13 UTC 2005 (1)

18 Oct 07:57:45 ntpdate2496: step time server 212.82.32.26 offset -0.000375 sec