Ich verwende Ubuntu auf einem ARM-basierten Embedded-System, dem eine batteriegepufferte Echtzeituhr fehlt. Die Weckzeit liegt irgendwo im Jahr 1970. Daher verwende ich den NTP-Dienst, um die Zeit auf die aktuelle Zeit zu aktualisieren.
Ich habe der /etc/rc.local
Datei die folgende Zeile hinzugefügt :
sudo ntpdate -s time.nist.gov
Nach dem Start dauert es jedoch noch einige Minuten, bis die Zeit aktualisiert ist. Während dieser Zeit kann ich nicht effektiv mit tar
und arbeiten make
.
Wie kann ich eine Aktualisierung der Uhr zu einem bestimmten Zeitpunkt erzwingen?
UPDATE 1: Das Folgende (danke an Eric und Stephan) funktioniert einwandfrei von der Kommandozeile aus, kann aber die Uhr beim Einfügen nicht aktualisieren /etc/rc.local
:
$ date ; sudo service ntp stop ; sudo ntpdate -s time.nist.gov ; sudo service ntp start ; date
Thu Jan 1 00:00:58 UTC 1970
* Stopping NTP server ntpd [ OK ]
* Starting NTP server [ OK ]
Thu Feb 14 18:52:21 UTC 2013
Was mache ich falsch?
UPDATE 2: Ich habe versucht, den wenigen Vorschlägen zu folgen, die als Reaktion auf das erste Update eingegangen sind, aber nichts scheint die Aufgabe tatsächlich wie erforderlich zu erledigen. Folgendes habe ich versucht:
- Tauschen Sie den Server gegen aus
us.pool.ntp.org
- Verwenden Sie explizite Pfade zu den Programmen
- Entfernen Sie den
ntp
Service insgesamt und lassen Sie nursudo ntpdate ...
inrc.local
- Entfernen Sie den
sudo
aus dem obigen Befehl inrc.local
Unter Verwendung der obigen Einstellungen startet der Computer immer noch um 1970. Wenn Sie dies jedoch über die Befehlszeile tun, nachdem Sie sich (über ssh
) angemeldet haben , wird die Uhr aktualisiert, sobald ich sie aufrufe ntpdate
.
Das letzte, was ich tat, war, das zu entfernen rc.local
und einen Anruf ntpdate
in meine .bashrc
Akte zu setzen. Dadurch wird die Uhr wie erwartet aktualisiert und die aktuelle Uhrzeit wird angezeigt, sobald die Eingabeaufforderung verfügbar ist.
Dies bedeutet jedoch , dass die Zeit nie aktualisiert wird, wenn der Computer eingeschaltet ist und kein Benutzer angemeldet ist. Ich kann den ntp
Dienst natürlich neu installieren , damit die Uhr innerhalb weniger Minuten nach dem Start aktualisiert wird, aber dann sind wir wieder auf Platz 1.
Gibt es einen Grund, warum das Platzieren des ntpdate
Befehls in rc.local
nicht die erforderliche Aufgabe ausführt, während dies in .bashrc
einwandfrei funktioniert?
sudo
In /etc/rc.locale müssen keine Dateien verwendet werden. Sie werden bereits als root ausgeführt.
timedatectl
, aber askubuntu.com/questions/832646/…
ntpdate -s ntp.ubuntu.com
[1]: askubuntu.com/a/81301/130162