Wie synchronisiert Ubuntu die Zeit ohne NTP?

39

Durch Klicken auf "Systemeinstellungen -> Uhrzeit und Datum -> Automatisch aus dem Internet" kann ich die Uhrzeit aus dem Internet synchronisieren.

Ich stelle jedoch fest, dass ich keinen ntpdDaemon habe (er ist noch nicht einmal installiert). Wie funktioniert die Synchronisation?

n3v3rm03
quelle
6
Beachten Sie, dass diese Schnittstelle meiner Meinung nach irreführend ist. Es sollte eine Taste und kein Schalter sein, da es eine einmalige Aktion auslöst , mit ntpdate, --- Sie müssen manuell installieren, ntpum eine kontinuierliche Zeitsynchronisierung mit dem Internet zu gewährleisten. Ich habe es in bugs.launchpad.net/ubuntu/+source/gnome-control-center/+bug/…
Rmano
Ich bin mir nicht sicher, ob es irreführend ist. Ich hatte den Eindruck, dass ntpdate bei jedem Start einmal ausgeführt wurde, sofern diese Option nicht deaktiviert war. Kann das jemand bestätigen?
Thomasrutter
Auf Kubuntu 16.04 zeigt das Uhr-Widget nicht einmal die Automatically from the InternetOption oder irgendetwas Ähnliches an.
kmonsoor

Antworten:

38

Dies erfolgt durch Synchronisieren mit dem ntpdateWerkzeug.

man ntpdate

NAME
       ntpdate - set the date and time via NTP

ntpdate sets the local date and time by polling the Network Time Proto‐
       col (NTP) server(s) given as the server arguments to determine the cor‐
       rect time. It must be run as root on the local host (unless the  option
       -q  is used). A number of samples are obtained from each of the servers
       specified and a subset of the NTP clock filter and selection algorithms
       are  applied  to  select  the best of these. Note that the accuracy and
       reliability of ntpdate depends on the number of servers, the number  of
       polls each time it is run and the interval between runs.

       ntpdate  can  be run manually as necessary to set the host clock, or it
       can be run from the host startup script to set the clock at boot  time.
       This is useful in some cases to set the clock initially before starting
       the NTP daemon ntpd. It is also possible to run  ntpdate  from  a  cron
       script.  However,  it  is important to note that ntpdate with contrived
       cron scripts is no substitute for the NTP daemon, which uses  sophisti‐
       cated  algorithms to maximize accuracy and reliability while minimizing
       resource use. Finally, since ntpdate does not discipline the host clock
       frequency as does ntpd, the accuracy using ntpdate is limited.

Das kannst du mit

sudo ntpdate TIME-SERVER

TIME-SERVER - Listen können gegründet werden hier

Maythux
quelle
6
aber die Frage ist, ntpdate nicht standardmäßig auf Ubuntu installiert ist, so wie funktioniert Ubuntu jemals sync Zeit?
John Allard
2
Hinweis: Diese akzeptierte Antwort ist sehr veraltet. In neueren Versionen von Ubuntu (16.04+) wird timedatectl anstelle von ntpdate verwendet. timedatectl steuert den timesyncd-Dienst von systemd.
Corey Goldberg
Ja, diese Antwort ist ohne Thema. Es geht nicht darum, wie die Zeit ohne ntpd + ntpq synchronisiert wird, sondern darum, wie UBUNTU ohne eines der oben genannten Verfahren vorgeht (ntpdate / ntpq) von mindestens ein paar Dutzend Sekunden (Ubuntu 18.04) .Ich erinnere mich auch an die Hölle, in der NTPd ausgeblasen ist, wenn es sich weigert, die Zeit "zu weit weg" usw. zu synchronisieren. Und jetzt - die Uhr ist synchron! Magic.
Tomasz Gandor
21

Ubuntu synchronisiert ntpdatesich jedes Mal mit dem Dienstprogramm, wenn die Netzwerkverbindung hergestellt wird (was normalerweise beim Booten der Fall ist).

Dieses Dienstprogramm wird standardmäßig installiert, läuft jedoch nur, wenn Ubuntu es aufruft, und läuft nicht als Daemon im Hintergrund.

Bei der Installation des ntpPakets wird der NTP-Dämon installiert. Der NTP-Daemon ermöglicht die kontinuierliche Synchronisierung der Zeit, während das System ausgeführt wird.


Update : In neueren Versionen von Ubuntu (zB 16.04) ntpdatewird durch ersetzt timedatectl, was einmal beim Booten sowie beim Hochfahren eines Netzwerks synchronisiert wird, aber zu anderen Zeiten nicht weiter läuft. Weitere Informationen finden Sie unter https://help.ubuntu.com/lts/serverguide/NTP.html .

thomasrutter
quelle
4
Es ist nicht bei jedem Boot an sich; folge dpkg-query --listfiles ntpdatezu /etc/network/if-up.d/ntpdate.
ændrük
1
Ah, danke, also denke ich, es ist jedes Mal, wenn die Netzwerkschnittstelle hochgefahren wird, was nicht unbedingt jeder Boot für jeden sein muss.
Thomasrutter
ah du sicher, dass dies standardmäßig installiert ist? Ich sitze hier auf einer brandneuen Ubuntu 16.04-Serverinstanz und es ist kein ntpdate util installiert.
John Allard
ntpdate wurde standardmäßig in 14.04 installiert, aber nicht mehr in 16.04. Es gilt nun als veraltet, timedatectlwas ähnlich funktioniert - es wird standardmäßig installiert und synchronisiert einmal beim Booten, aber auch, wenn ein Netzwerk hochgefahren wird.
Thomasrutter
12

Für diejenigen von euch mit 16.04 LTS scheint die Zeitsynchronisation von sytemd speziell "timedatectl" gehandhabt zu werden

timedatectl status
Local time: Wed 2016-11-30 17:45:18 CST
Universal time: Wed 2016-11-30 23:45:18 UTC
RTC time: Sun 2016-12-04 06:50:39
Time zone: America/Chicago (CST, -0600)
Network time on: yes
NTP synchronized: yes
RTC in local TZ: no

Konfig ist

/etc/systemd/timesyncd.conf

Mehr Infos hier: Zeitsynchronisation mit NTP UND Zeitdaten

MysticRyuujin
quelle
1
Dies ist ab sofort die beste Antwort. Der Rest ist praktisch ohne Thema (mit Ausnahme der bearbeiteten, die systemd-timedatectl erwähnen).
Tomasz Gandor
2

Beachten Sie auch, dass es durchaus eine Front-End-Schnittstelle für einen Dienst geben kann, der nicht installiert ist.

Sie können die Einstellungen in dieser Front-End-Oberfläche (GUI) beliebig ändern, aber wenn der Dienst, der die Aufgaben tatsächlich ausführt, nicht installiert ist, geschieht nichts.

Beachten Sie jedoch, dass ich denke, dass der "Schalter" gültig ist, da er das einmalige Update bei JEDEM Bootvorgang anweist. (oder nicht).

Sofern es sich nicht um ein System handelt, das nicht mit dem Netzwerk verbunden ist, oder ein anderer wichtiger Grund dafür vorliegt, dass die Zeit NICHT auf die "Standard" -Zeit eingestellt ist, rate ich Ihnen dringend, ntpd zu installieren und ordnungsgemäß zu konfigurieren und auszuführen.

sdfgsdfg
quelle
1

Siehe: https://help.ubuntu.com/community/UbuntuTime

Ubuntu wird standardmäßig mit ntpdate ausgeliefert und wird beim Booten einmal ausgeführt, um die Zeit gemäß dem NTP-Server von Ubuntu einzustellen. Es ist jedoch wahrscheinlich, dass die Systemuhr zwischen den Neustarts erheblich verschoben wird, wenn die Zeit zwischen den Neustarts lang ist. In diesem Fall ist es sinnvoll, die Uhrzeit gelegentlich zu korrigieren. Der einfachste Weg, dies zu tun, besteht darin, cron dazu zu bringen, es jeden Tag auszuführen.

ntpdate ntp.ubuntu.com
Fadi
quelle
Oder Sie können ntpd( help.ubuntu.com/lts/serverguide/NTP.html#ntpd ) verwenden, um die Synchronisierung aufrechtzuerhalten.
Gaurav
Zu Ihrer Information, die Seite, auf die Sie verwiesen haben, wurde ab sofort nicht für den 16.04 aktualisiert, daher nicht sehr hilfreich.
kmonsoor
1

Aus irgendeinem Grund funktioniert die Antwort von Maythux am 16.04. Nicht sofort.

Aber die Führung von dort zu übernehmen, hat bei mir funktioniert.

$ sudo ntpdate-debian

Bitte beachten Sie, dass dies sudonatürlich ein Privileg erfordert .

Unter der Haube verwendet es ntpdateTool, das sich nur von der Konfigurationsdatei unterscheidet.

ntpdate-debian ist identisch mit der ntpdate(8) Ausnahme, dass standardmäßig die Konfiguration in verwendet /etc/default/ntpdatewird. ntpdate legt das lokale Datum und die Uhrzeit fest, indem NTP-Server (Network Time Protocol) abgefragt werden.

kmonsoor
quelle
16.04 verwendet systemd, daher würde ich davon ausgehen, dass es einen gleichwertigen neuen Befehl gibt.
Rinzwind
@Rinzwind das wäre natürlich fantastisch. Leider ist die angebliche Hauptseite im Ubuntu-Wiki für den 16.04. Nicht aktualisiert. Es wird eine Meldung mit der Aufschrift "Dieser Artikel muss aktualisiert werden, damit die neuesten Versionen von Ubuntu verfügbar sind" angezeigt.
kmonsoor
Zumindest in 14.04 sudo ntpdate-debianmacht das gleiche wie sudo ntpdate ntp.ubuntu.com. Das seltsame ist, warum sie dieses Paket von is identical to ntpdate(8) except that it uses the configuration in /etc/default/ntpdate by defaultDebian ausgewählt und optimiert haben, als wir es gelesen und diese Datei, die wir gelesen haben, cattingen NTPDATE_USE_NTP_CONF=yes # List of NTP servers to use (Separate multiple servers with spaces.) # Not used if NTPDATE_USE_NTP_CONF is yes. NTPSERVERS="ntp.ubuntu.com"???
nützlich
1

Nun, die späteren Ubuntu-Versionen verwenden häufig chrony, eine alternative Implementierung von ntp mit einigen Unterschieden:

  1. Einige der seltener verwendeten NTP-Funktionen sind nicht implementiert
  2. Es wird versucht, die Situation zu bewältigen, in der Sie zeitweise auf das Netzwerk zugreifen - Wenn eine Verbindung hergestellt ist, synchronisiert es die lokale Uhr und verfolgt, wie schnell sie abweicht. Wenn die Verbindung getrennt wird, wird die lokale Uhr verwendet, die Zeit wird jedoch angepasst, um zu berücksichtigen, wie sie normalerweise abweicht.

Weitere Informationen finden Sie unter https://chrony.tuxfamily.org/ .

Mark Phillips
quelle