Linux rdate: Einen Zeitserver prüfen und die Systemuhr stellen
rdate ist ein Befehl, der die Zeit von einem entfernten Zeitserver abruft, um sie zu prüfen oder die Systemuhr einmal einzustellen. Die Bedeutung der Optionen unterscheidet sich jedoch je nach Implementierung mit demselben Namen, daher sollten Sie zuerst das Handbuch des installierten Programms überprüfen. Für die kontinuierliche Zeitsynchronisierung ist es besser, einen Zeitsynchronisierungsdienst wie chrony zu verwenden.
Unterschied zwischen rdate und Zeitsynchronisierung
rdate ist ein Tool, das beim Ausführen eine Anfrage an einen Remote-Server sendet. Selbst wenn es die Uhr einmal stellt, läuft der Befehl selbst nicht kontinuierlich, um Abweichungen zu korrigieren. Wenn Sie Dienste betreiben, die empfindlich auf Zeit reagieren, wie Protokolle, geplante Aufgaben oder Zertifikatsüberprüfungen, müssen Sie den Status der kontinuierlichen Synchronisation überprüfen.
Die folgenden Beispiele verwenden OpenRdate wie im Ubuntu 24.04 rdate-Handbuch dokumentiert. Die gleichen Optionen können in anderen Implementierungen unterschiedliche Bedeutungen haben, daher sollten diese Beispiele nicht unverändert angewendet werden.
Installation und Implementierungsprüfung
Unter Ubuntu, wenn Sie auf das Paket-Repository zugreifen können, installieren Sie es wie folgt. Wenn angegeben wird, dass das Paket nicht gefunden wurde, überprüfen Sie die Distributionsversion und das von Ihnen verwendete Repository.
sudo apt update
sudo apt install rdate
Nach der Installation öffnen Sie das Handbuch, um die Optionen des tatsächlichen Programms zu prüfen. Die Exit-Taste im Handbuch ist q.
command -v rdate
man rdate
In OpenRdate bedeutet -p, dass es die Serverzeit ausgibt, ohne die Uhr zu ändern, und -s bedeutet, dass sie nicht ausgegeben wird. In anderen rdate-Implementierungen könnte -s bedeuten, dass die Uhr gestellt wird. Deshalb sollten Sie das Verhalten nicht allein anhand des Optionsnamens erraten. Insbesondere bei OpenRdate kann das Ausführen ohne -p versuchen, die Uhr zu stellen.
Nur Serverzeit überprüfen
Die Standardkommunikationsmethode von OpenRdate ist der TCP-Port 37 des RFC-868-Zeitprotokolls. Man kann nicht davon ausgehen, dass ein typischer NTP (Network Time Protocol)-Server auch RFC 868 bereitstellt. Das folgende Beispiel fragt den NTP-Server der Physikalisch-Technischen Bundesanstalt (PTB) in Deutschland unter Verwendung der -n-Option von OpenRdate und des Simple Network Time Protocol (SNTP) ab. Überprüfen Sie die Servernutzungsrichtlinien und die Netzwerkzugänglichkeit und ersetzen Sie ihn gegebenenfalls durch den von Ihrer Organisation angegebenen NTP-Server.
rdate -n -p ptbtime1.ptb.de
Wenn eine normale Antwort empfangen wird, wird die Fernzeit angezeigt, und die lokale Systemuhr wird nicht geändert. SNTP verwendet den UDP-Port 123. Laut OpenRdate-Handbuch kann bei einem NTP-Server eine Schaltsekundenkorrektur erforderlich sein. Wenn es auf Genauigkeit ankommt, prüfen Sie die Option -c im Handbuch und die Bedingungen der Zeitquelle. Wenn keine Antwort erfolgt, überprüfen Sie die Serveradresse, DNS, Firewall und ob der Serverdienst läuft. Sie müssen zuerst das Protokoll überprüfen, das der Server tatsächlich unterstützt, da die Bezeichnung als Zeitserver nicht bedeutet, dass er alle Protokolle unterstützt.
Überprüfen Sie dies, bevor Sie die Uhr einmal einstellen
Wenn die Systemzeit plötzlich vor- oder zurückspringt, kann dies die Reihenfolge von Protokollen, geplanten Aufgaben, Authentifizierungen und laufenden Diensten beeinflussen. Für Systeme im Betrieb sollten die Zuverlässigkeit der Zeitquelle und die Auswirkungen von Änderungen überprüft sowie eine geeignete Zeit für Modifikationen sichergestellt werden. Überprüfen Sie außerdem die aktuelle Betriebspolitik, um zu vermeiden, dass eine bereits von chrony oder anderen Synchronisationsdiensten verwaltete Uhr wiederholt geändert wird.
In OpenRdate versucht der folgende Befehl, die Systemuhr auf die Zeit des SNTP-Servers einzustellen, ohne -p. Administratorrechte sind erforderlich, und vor der Ausführung sollten die Serverantwort und die aktuelle Zeit mit dem oben genannten Abfragebefehl überprüft werden. Dieses Beispiel gilt für OpenRdate.
date
timedatectl
sudo rdate -n ptbtime1.ptb.de
date
timedatectl
Wenn ein Befehl fehlschlägt, überprüfen Sie auf Fehler und gehen Sie nicht davon aus, dass er erfolgreich war. date und timedatectl helfen, die lokale Zeit und die Zeitzone zu überprüfen. Nur weil die auf dem Bildschirm angezeigte Zeitzone abweicht, bedeutet das nicht zwangsläufig, dass die Referenzzeit der Uhr falsch ist. Zeitänderungen können nicht so einfach wie eine Abfrage rückgängig gemacht werden. Statt blind auf vorige Werte zurückzusetzen, synchronisieren Sie sich gemäß den Betriebsverfahren mit einer zuverlässigen Zeitquelle.
Kontinuierliche Synchronisierung überprüfen
rdate nur einmal auszuführen, konfiguriert keine kontinuierliche Synchronisierung. In einer systemd-Umgebung können Sie den Synchronisierungsdienst und den Uhrstatus mit folgendem Befehl überprüfen.
timedatectl status
Dass NTP service als aktiv und System clock synchronized als synchronisiert angezeigt wird, sind unterschiedliche Status. Selbst wenn der Dienst läuft, kann er möglicherweise nicht synchronisiert sein, wenn er keinen Server erreichen kann. Angezeigte Elemente können je nach System und Version variieren.
Auf Systemen, die chrony verwenden, können Sie den Status und die Zeitquellen mit chronyc tracking und chronyc sources -v überprüfen. Wenn Sie die Befehle nicht verwenden können, prüfen Sie die Installation, den Dienststatus und die Einstellungen der Distribution. In der Chrony-Zeitsynchronisationsdokumentation von Red Hat können Sie sehen, wie Sie die Quellen und den Synchronisationsstatus überprüfen.




