Ich verwende Ubuntu auf einem ARM-basierten eingebetteten System, dem eine batteriegestützte Echtzeituhr fehlt. Die Aufwachzeit ist irgendwo im Jahr 1970. Daher verwende ich den NTP-Dienst, um die Uhrzeit auf die aktuelle Uhrzeit zu aktualisieren.
Ich habe die folgende Zeile hinzugefügt /etc/rc.local
Datei:
sudo ntpdate -s time.nist.gov
Nach dem Start dauert es jedoch noch einige Minuten, bis die Uhrzeit aktualisiert ist, in diesem Zeitraum kann ich nicht effektiv arbeiten tar
und make
.
Wie kann ich eine Uhrenaktualisierung zu einem bestimmten Zeitpunkt erzwingen?
AKTUALISIERUNG 1: Das Folgende (danke an Eric und Stephan) funktioniert einwandfrei über die Befehlszeile, aktualisiert die Uhr jedoch nicht, wenn sie eingegeben wird /etc/rc.local
:
$ date ; sudo service ntp stop ; sudo ntpdate -s time.nist.gov ; sudo service ntp start ; dateThu 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?
AKTUALISIERUNG 2: Ich habe versucht, den wenigen Vorschlägen zu folgen, die als Antwort auf das 1. Update kamen, aber nichts scheint die Aufgabe tatsächlich wie erforderlich zu erfüllen. Folgendes habe ich versucht:
- Ersetzen Sie den Server durch
us.pool.ntp.org
- Explizite Pfade zu den Programmen verwenden
- Entfernen Sie die
ntp
service insgesamt und lassen Sie einfachsudo ntpdate ...
inrc.local
- Entfernen Sie die
sudo
aus dem obigen Befehl inrc.local
Mit dem oben genannten startet die Maschine immer noch bei 1970. Wenn Sie dies jedoch von der Befehlszeile aus tun, sobald Sie angemeldet sind (über ssh
), wird die Uhr aktualisiert, sobald ich aufrufe ntpdate
.
Das letzte, was ich getan habe, war, das zu entfernen rc.local
und rufen Sie an ntpdate
in meinem .bashrc
Datei. Dadurch wird die Uhr wie erwartet aktualisiert und ich erhalte die tatsächliche aktuelle Uhrzeit, sobald die Eingabeaufforderung verfügbar ist.
Jedoch, dies bedeutet, dass, wenn die Maschine eingeschaltet ist und kein Benutzer angemeldet ist, die Zeit nie aktualisiert wird. Ich kann natürlich das neu installieren ntp
service so wird zumindest die Uhr innerhalb weniger Minuten nach dem Start aktualisiert, aber dann sind wir wieder auf Platz 1.
Also, gibt es einen Grund, warum die Platzierung der ntpdate
befehl ein rc.local
führt die erforderliche Aufgabe nicht aus, während dies in .bashrc
funktioniert gut?