
Ich habe ein Debian Jessie Linux-System mit einer internen RTC-Uhr, die der Benutzer anpassen oder ändern kann. Es kann mit einer externen IP verbunden sein oder nicht und kann daher Zugriff auf NTP haben oder nicht. Ich würde gerne eine Option in der Benutzeroberfläche zur Uhreinstellung bereitstellen, um „von NTP einzustellen“, falls diese verfügbar ist, aber ich möchte nicht, dass die Systemuhr ständig von NTP aktualisiert wird.
- Wie kann ich ntpd so konfigurieren, dass es aktiv ist, aber die Systemuhr nicht aktualisiert?
- Wie kann ich die „NTP-Zeit“ (die zusammen mit der Systemuhr angezeigt wird) lesen und anzeigen? (C oder Python ist in Ordnung)
Antwort1
Die einfachste Lösung, um zu verhindern, dass NTP Ihre Systemuhr aktualisiert, besteht darin, es nicht auszuführen.
Verwenden Sie stattdessen etwas wie „ ntpdate
On Demand“, um die potenziellen Remote-NTP-Server zu fragen, wie falsch Ihre lokale Uhr ist.
ntpdate -qu 0.pool.ntp.org 1.pool.ntp.org 2.pool.ntp.org
server 212.47.239.163, stratum 2, offset 0.000638, delay 0.03052
server 92.243.6.5, stratum 3, offset -0.001490, delay 0.03011
...
4 Oct 00:00:55 ntpdate[10962]: adjust time server 91.121.167.54 offset -0.000156 sec
In diesem Modus ntpdate
muss es nicht einmal als Root ausgeführt werden, sodass Sie sicher sein können, dass Ihre lokale Uhr nicht „versehentlich“ aktualisiert wird.
Ist Ihnen übrigens bewusst, dass ntpd
es mit der Trennung von den Upstream-Zeitservern zurechtkommt und dass das Ausführen des Daemons über einen langen Zeitraum dazu beitragen kann, die den meisten Systemuhren innewohnende Abweichung zu minimieren?