Wie kann ich die Uhrzeit meines Servers korrigieren?
Es gibt drei Möglichkeiten, die Uhrzeit Ihres Servers zu korrigieren:
- Durch Befehlseingaben, siehe Abschnitt A
- Durch einen Eintrag in der crontab-Datei des Benutzers root, siehe Abschnitt B
- Durch Einsatz des NTP-Daemons, siehe Abschnitt C
Alle drei Möglichkeiten rufen die jeweils aktuelle Zeit von bestimmten Rechnern im Internet ab, von so genannten Time-Servern, die anderen Rechnern die geeichte Uhrzeit (und das richtige Datum) zur Verfügung stellen. Anschließend wird die Uhrzeit Ihres Servers korrigiert. Die Zeitsynchronisation geschieht durch den Einsatz des Network Time-Protokolls (NTP).
In dieser Anleitung werden folgende Time-Server verwendet:
- ntp1.rz-ip.net
- ntp2.rz-ip.net
Sie können selbstverständlich auch andere oder weitere Time-Server ansprechen. Je mehr Time-Server Sie ansprechen, desto genauer wird die Zeit berechnet, die auf Ihrem Server eingetragen wird.
Eine Liste aller europäischer Zeitserver finden Sie unter:
https://www.ntppool.org/zone/europe
In dieser Anleitung werden folgende Time-Server verwendet:
- ntp1.rz-ip.net
- ntp2.rz-ip.net
Sie können selbstverständlich auch andere oder weitere Time-Server ansprechen. Je mehr Time-Server Sie ansprechen, desto genauer wird die Zeit berechnet, die auf Ihrem Server eingetragen wird.
Eine Liste aller europäischer Zeitserver finden Sie unter:
/usr/sbin/ntpdate ntp1.rz-ip.net |
Dieser Befehl fragt den Time-Server ntp1.rz-ip.net nach den aktuellen Zeitangaben und überträgt anschließend die so genannte Systemzeit auf Ihrem Server. Mit der Systemzeit wird auf Linux-Systemen die Zeit bezeichnet, die durch das Betriebssystem verwaltet wird.
Falls die Abfrage der Zeitangaben fehlschlägt, und es wird folgende Fehlermeldung ausgegeben:
[…] ntpdate[2512]: the NTP socket is in use, exiting
dann steht Port 123 dem Programm ntpdate nicht zur Verfügung. Diesen Port benötigt ntpdate für Zeitabfragen von anderen Rechnern. Überprüfen Sie in einem solchen Fall die Firewall- bzw. PaketFilter-Einstellungen auf Ihrem Server, und ob der NTP-Dämon aktiv ist (siehe Abschnitt C).
Möchten Sie die Zeitangaben in der Hardware-Uhr (auch bekannt unter den Bezeichnungen RTC, RealTimeClock, CMOS-Uhr oder BIOS Uhr) in Ihrem Server aktualisieren, führen Sie anschließend folgenden Befehl aus:
hwclock --systohc |
Hierdurch werden die aktuellen Zeitangaben, die dem Betriebssystem bekannt sind, in die Hardware-Uhr Ihres Rechners übertragen. Beim Neustart des Rechners wird dann die aktualisierte Zeit, die in der Hardware-Uhr eingetragen ist, der System-Uhr in Linux übergeben.
Wird Ihr Server mehrere Monate lang nicht neu gestartet, entsteht eine nicht unbeachtliche Abweichung von den tatsächlichen Zeitangaben. Um zu gewährleisten, dass Ihr Server zeitlich unbegrenzt über richtige Zeitangaben verfügt, befolgen Sie bitte die Anweisungen in den Abschnitten B oder C.
B) Korrektur der Uhrzeit durch einen Eintrag in der crontab-Datei des Benutzers root
Öffnen Sie als erstes die crontab-Datei des Benutzers root, indem Sie sich als Benutzer root folgendes Kommando ausführen:
crontab –e |
Wechseln Sie dann in den Einfügemodus, indem Sie die Taste "i" drücken.
Fügen Sie nun eine neue Zeile mit folgendem Inhalt ein:
Fügen Sie nun eine neue Zeile mit folgendem Inhalt ein:
0-59/5 * * * * /usr/sbin/ntpdate ntp1.rz-ip.net |
Durch diesen Befehl werden jede fünf Minuten die aktuellen Zeitangaben des Time-Servers ntp1.rz-ip.net in ihr Linux-Betriebssystem eingetragen.
Mit dem Zusatz hwclock können Sie sogar die Angaben in die Hardware-Uhr schreiben lassen. Bei Debian würde der Eintrag wie folgt lauten:
Mit dem Zusatz hwclock können Sie sogar die Angaben in die Hardware-Uhr schreiben lassen. Bei Debian würde der Eintrag wie folgt lauten:
0-59/5 * * * * /usr/sbin/ntpdate ntp1.rz-ip.net && /usr/sbin/hwclock –-systohc |
Beachten Sie bitte, dass der Pfad zu hwclock bei anderen Betriebssystemen abweicht.
Überprüfen Sie abschließend den Inhalt der Logdatei /var/log/messages in Bezug auf Meldungen, die durch den cron-Daemon ausgegeben werden.
C) Korrektur der Uhrzeit durch Einsatz des NTP-Daemons
Sie können Ihren Rechner so einrichten, dass er durch den Einsatz des NTP-Dämons in Abständen von fünf Minuten die geeichten Zeitangaben von einem oder mehreren Time-Servern bezieht. Unter SuSE wird als NTP-Daemon der XNTP-Daemon eingesetzt.
Führen Sie folgende Schritte durch, um die regelmäßige Zeitsynchronisation Ihres Servers mit zwei Time-Servern zu erreichen, die sich im im STRATO Rechenzentrum befinden:
1. Loggen Sie sich als root auf der Konsole ein.
2. Stellen Sie sicher, dass das Paket xntp auf Ihrem Server installiert ist. Überprüfen Sie dies über die Yast-Oberfläche, indem Sie im Bereich Software installieren oder löschen nach dem Paket xntp suchen.
3. Überprüfen Sie mit folgendem Befehl, ob der XNTP-Daemon läuft:
Sie können Ihren Rechner so einrichten, dass er durch den Einsatz des NTP-Dämons in Abständen von fünf Minuten die geeichten Zeitangaben von einem oder mehreren Time-Servern bezieht. Unter SuSE wird als NTP-Daemon der XNTP-Daemon eingesetzt.
Führen Sie folgende Schritte durch, um die regelmäßige Zeitsynchronisation Ihres Servers mit zwei Time-Servern zu erreichen, die sich im im STRATO Rechenzentrum befinden:
1. Loggen Sie sich als root auf der Konsole ein.
2. Stellen Sie sicher, dass das Paket xntp auf Ihrem Server installiert ist. Überprüfen Sie dies über die Yast-Oberfläche, indem Sie im Bereich Software installieren oder löschen nach dem Paket xntp suchen.
3. Überprüfen Sie mit folgendem Befehl, ob der XNTP-Daemon läuft:
rcxntpd status |
Falls der XNTP-Daemon läuft, beendet Sie ihn mit folgendem Befehl:
rcxntpd stop |
4. Tragen Sie in der Datei /etc/ntp.conf folgende Zeilen ein:
server ntp1.rz-ip.net |
Die ersten beiden Zeilen definieren die Time-Server im STRATO Rechenzentrum, von denen Ihr Server die Zeit beziehen wird.
Die dritte Zeile definiert die so genannte Drift-Datei, in der die Abweichung der Systemzeit Ihres Servers zur realen Zeit gespeichert wird. Beachten Sie, dass zeitliche Abweichungen unter anderem dadurch entstehen, dass die Verbindung zwischen Ihrem Server und einem oder mehreren Time-Servern keine direkte ist, sondern dass sich zwischen ihnen weitere Server befinden können. Bei jedem Neustart des XNTP-Daemons verwendet der XNTP-Daemon die Informationen aus dieser Datei, um die zeitliche Abweichungen beim Setzen der Systemzeit zu berücksichtigen.
Soweit bekannt, erzeugt der XNTP-Daemon die Drift-Datei selbst. Sie sollte nicht eigenhändig angelegt werden. Nach einigen Stunden schreibt der XNTP-Daemon die ermittelte Abweichung in der Zeitberechnung Ihres Servers in diese Datei.
Die letzten beiden Zeilen in der /etc/ntpd.conf definieren den Standort der XNTPD-Logdatei und den Protokollierungsumfang des XNTP-Daemons.
5. Für die Initialisierung der Zeitsynchronisation muss die Zeit von beiden Zeit-Servern eigenhändig bezogen werden. Führen Sie folgende Befehle durch:
Die dritte Zeile definiert die so genannte Drift-Datei, in der die Abweichung der Systemzeit Ihres Servers zur realen Zeit gespeichert wird. Beachten Sie, dass zeitliche Abweichungen unter anderem dadurch entstehen, dass die Verbindung zwischen Ihrem Server und einem oder mehreren Time-Servern keine direkte ist, sondern dass sich zwischen ihnen weitere Server befinden können. Bei jedem Neustart des XNTP-Daemons verwendet der XNTP-Daemon die Informationen aus dieser Datei, um die zeitliche Abweichungen beim Setzen der Systemzeit zu berücksichtigen.
Soweit bekannt, erzeugt der XNTP-Daemon die Drift-Datei selbst. Sie sollte nicht eigenhändig angelegt werden. Nach einigen Stunden schreibt der XNTP-Daemon die ermittelte Abweichung in der Zeitberechnung Ihres Servers in diese Datei.
Die letzten beiden Zeilen in der /etc/ntpd.conf definieren den Standort der XNTPD-Logdatei und den Protokollierungsumfang des XNTP-Daemons.
5. Für die Initialisierung der Zeitsynchronisation muss die Zeit von beiden Zeit-Servern eigenhändig bezogen werden. Führen Sie folgende Befehle durch:
ntpdate –b ntp1.rz-ip.net ntpdate –b ntp2.rz-ip.net |
6. Idealerweise soll der NTPD-Daemon bei jedem Systemstart neu gestartet werden. Das Startskript des XNTP-Daemons muss hierfür in den Bootvorgang Ihres Servers einbezogen werden. Führen Sie deswegen folgenden Befehl aus:
/sbin/insserv xntpd |
Auf der Konsole wird daraufhin folgende Meldung ausgegeben:
“insserv: script visas: service apachevisas already provided!”
Diese Meldung kann ignoriert werden. In YaST läßt sich die Einbeziehung in den Bootvorgang nachvollziehen. (Bereich: System -> Runlevel-Editor -> Runlevel-Eigenschaften).
7. Überprüfen Sie dennoch, ob der XNTP-Daemon aktiv ist. Führen Sie folgenden Befehl aus:
“insserv: script visas: service apachevisas already provided!”
Diese Meldung kann ignoriert werden. In YaST läßt sich die Einbeziehung in den Bootvorgang nachvollziehen. (Bereich: System -> Runlevel-Editor -> Runlevel-Eigenschaften).
7. Überprüfen Sie dennoch, ob der XNTP-Daemon aktiv ist. Führen Sie folgenden Befehl aus:
rcxntpd status |
Beachten Sie, dass Ihr Server nach Ausführen der Schritte nicht sofort auf die korrekte Zeit eingestellt ist. Es dauert in der Regel mehrere Stunden, bis Ihr Server anhand der Datei /etc/ntp.drift und dem regelmäßigen Zugriff des XNTP-Daemons auf die Time-Server die korrekte Zeit ermittelt hat.
Die aktuell eingestellte Systemzeit Ihres Rechners können Sie sich mit dem folgenden Befehl anzeigen lassen:
date |
8. Überprüfen Sie, ob die XNTPD-Logdatei Fehlermeldungen enthält.
9. Führen Sie einen Neustart des XNTP-Daemons nach 24 Stunden erneut durch und überprüfen Sie:
9. Führen Sie einen Neustart des XNTP-Daemons nach 24 Stunden erneut durch und überprüfen Sie:
- a) Ob Ihr Server die korrekte Zeit anzeigt
- b) Ob in der Datei /var/lib/ntp/ntp.drift Zahlenwerte eingetragen sind.