Dem Raspberry Pi fehlt eine Hardware-Uhr. Wie erzwinge ich, dass NTPD Datum / Uhrzeit unmittelbar nach jedem Start aktualisiert?
Ich führe Raspbian aus und der Raspberry Pi wird über verbunden ein Ethernet -Kabel.
Kommentare
- Meins macht das schon aus dem box. Welche Distribution verwenden Sie?
- Raspbian Wheezy
- @Thorb Pi ist mit Ethernet-Kabel / DHCP verbunden. Nach dem Booten erhält es einfach kein gültiges Datum, es dauert eine Weile (10 bis 45 Minuten)
- Dies geschieht nach einigen Minuten automatisch. Stellen Sie sicher, dass Sie die Hauptuhr beim National Bureau of Standards, time.nist.gov, wie beschrieben verwenden hier: raspberrypi.stackexchange.com/questions/68811/…
- Scheint, dass nein Diese Frage wurde bisher zufriedenstellend beantwortet – dh wie die Zeit nach einem Start über NTP synchronisiert wird (dh ohne Neustart).
Antwort
Nachher Diese Methode hat bei mir funktioniert. Wie Sie wissen, ist beim Raspberry Pi 3 NTP standardmäßig deaktiviert. Wenn Sie dies einfach eingeben, wird die NTP-Unterstützung aktiviert:
sudo timedatectl set-ntp True
Überprüfen Sie das Ergebnis mit timedatectl status
Im Falle einer Warnung müssen Sie möglicherweise auch sudo timedatectl set-local-rtc true
ausführen.
Kommentare
- Danke, das hat mir endlich geholfen und scheint trotz vorheriger Antworten der richtige Weg zu sein.
- Das ist die beste Antwort, hat mir sehr geholfen. Sie können ‚ sudo ‚ verwenden, um die Eingabe Ihres Kennworts zu vermeiden (nützlich für Skripte, die es ausführen). Was ist der Zweck des Sekundenbefehls? set-local-rtc
Antwort
Führen Sie eine apt-get install ntpdate
aus .
ntpdate
wird ausgeführt, wenn eine Ethernet-Schnittstelle aufgerufen wird, und legt die Zeit von einem NTP-Server fest (siehe /etc/default/ntpdate
).
Wenn ntpd
ausgeführt wird, führt ntpdate nichts aus, ntpdate
wird jedoch vor beim Booten – dies sollte also funktionieren, um die Zeit beim Booten festzulegen, solange eine Ethernet-Verbindung besteht.
Kommentare
- stock Raspbian wird das alles schon haben.
- @scruss mine hat ‚ t. (09.02.2013 wheezy rasbian)
- Meins musste es auch nicht manuell tun.
- Wenn es richtig eingerichtet ist, wird es automatisch ausgeführt – obwohl es einige Minuten dauern kann.
-
Linux raspberrypi 4.14.30-v7+ #1102 SMP Mon Mar 26 16:45:49 BST 2018 armv7l GNU/Linux
hatte ‚ es auch nicht.
Antwort
Wenn Ihre Uhr weit entfernt ist, müssen Sie möglicherweise die Synchronisierung von ntp erzwingen, indem Sie Folgendes tun:
sudo /etc/init.d/ntp stop sudo ntpd -q -g sudo /etc/init.d/ntp start
Kommentare
- Es wird der Fehler “ sudo: ntpd: Befehl nicht gefunden “
- ntpd muss sein installiert, um den Befehl zu verwenden
- Es ist installiert, ich bin nicht so unwissend 🙂
- Könnten Sie bitte raspberrypi.stackexchange.com/questions/47542/… ? Ich habe dort Details veröffentlicht.
- Dies war absolut die Lösung für mein Problem, aber ich fand es vorübergehend, bis ich neu startete. Schließlich habe ich beim Herunterfahren einen Fehler festgestellt, dass die Uhr nicht ‚ aktualisiert werden konnte, da die Uhr ein zukünftiges Datum hatte (keine Ahnung, wie das passiert ist). Aber die Lösung war eine hwclock Update Force. Dadurch wurde das Update auf die gefälschte Hardware-Uhr erzwungen, und beim Booten lag die Zeit mindestens nahe am aktuellen Wert, sodass ntp den Job ‚ normal ausführen konnte.
zurückgegeben
Antwort
Wenn Sie die Zeitzone in raspi-config
einstellen, aktualisiert der Raspberry Pi das automatisch Zeit beim Booten, wenn eine Verbindung zum Internet besteht.
-
sudo raspi-config
- Wählen Sie
Internationalisation Options
- Wählen Sie
I2 Change Timezone
- Wählen Sie Ihr geografisches Gebiet aus.
- Wählen Sie die nächstgelegene Stadt aus.
- Wählen Sie
Finish
- Wählen Sie
Yes
, um jetzt neu zu starten.
Kommentare
- das hat bei mir gut funktioniert
-
I2 Change Timezone
Option nicht ‚ existiert nicht mehr - Es existiert zumindest in Raspbian Buster.
- “ Internationalisierungsoptionen “ ist Jetzt “ Lokalisierungsoptionen genannt “
- “ nächstgelegene Stadt “ ist nicht der richtige Weg. Sie müssen die Stadt auswählen, zu der Ihre Zeitzone gehört, die möglicherweise die nächste ist oder nicht …
Antwort
Siehe Forumbeitrag Zeit Synchronisiert nicht auf Pi 3 und mit dem offiziellen Dongle .
ntpd sendet IP / UDP-Pakete mit dem ToS-Feld auf 0xc0 gesetzt. Das ist also ziemlich ähnlich zu dem anderen Problem, das ich (und viele andere) mit Raspberry Pi3 habe, wenn es über eine interne Wi-Fi-Schnittstelle betrieben wird.
Fügen Sie als Problemumgehung den Befehl
/sbin/iptables -t mangle -I POSTROUTING 1 -o wlan0 -p udp --dport 123 -j TOS --set-tos 0x00
in die Datei
/etc/rc.local
vor der Ausgangszeile 0. Starten Sie als Nächstes neu und überprüfen Sie.
Kommentare
- Ich hatte das gleiche Problem wie bei der Installation des RPi3, das ich für XMas erhalten habe, und Sie haben mein Problem gelöst. Großartig !!!
Antwort
Diese Frage ist anscheinend “ recycelt “ aus irgendeinem Grund, und daher scheint es angebracht, auch einige alte Antworten zu recyceln 🙂
Das Jahr ist jetzt 2021 …
Diese Frage wurde 2013 gestellt. ntpd
war die Zeitnehmungssoftware, die zu diesem Zeitpunkt in der Raspbian-Distribution enthalten war (wheezy
) . Dies änderte sich jedoch mit der Verteilung stretch
im Jahr 2017, als systemd-timesyncd
ntpd
ersetzte. Die Gründe für diese Änderung und einige der technischen Kompromisse wurden in dieser alten Antwort für diejenigen erörtert, die an solchen Dingen interessiert sind.
In Bezug auf die Frage hier der vielleicht hervorstechendste Punkt in der aktuellen Umgebung von (post- systemd
) lautet wie folgt: Wenn Sie ntpd
unter Ihrer aktuellen Raspbian-Distribution installieren möchten, wissen Sie, dass systemd-timesyncd
wird “ das Richtige tun „! Es prüft, ob andere NTP-Dämonen vorhanden sind, und passt sein Verhalten entsprechend an. es funktioniert nur . Sie können alles darüber lesen, indem Sie dies in die Befehlszeile eingeben:
$ systemctl cat systemd-timesyncd
Beachten Sie die letzten Zeilen:
# Führen Sie timesyncd nicht aus, wenn ein anderer NTP-Daemon installiert ist.
ConditionFileIsExecutable =! / usr / sbin / ntpd
ConditionFileIsExecutable =! / usr / sbin / openntpd
ConditionFileIsExecutable =! / Usr / sbin / chronyd
ConditionFileIsExecutable =! / Usr / sbin / VBoxService
Mit anderen Worten: systemd-timesyncd
prüft, ob einer dieser alternativen Zeitdienste auf Ihrem System ausgeführt wird, und wenn ja, wird er ihnen höflich die Bereitstellung Ihrer Zeitnehmungsdienste aufschieben.
“ “ ntpd
nach dem Start aktualisieren?!
Dies war das OP „s Frage. Die Antwort (im Jahr 2021) hat sich nicht geändert: Dies sollte auf keinem RPi-System erforderlich sein – , es sei denn, jemand hat die Standardkonfiguration geändert ! Sie können dies wie folgt überprüfen:
$ timedatectl Local time: Wed 2021-01-13 00:25:33 GMT Universal time: Wed 2021-01-13 00:25:33 UTC RTC time: n/a Time zone: Europe/London (GMT, +0000) System clock synchronized: yes NTP service: active RTC in local TZ: no
Beachten Sie zwei Elemente:
-
System clock synchronized: yes
-
NTP service: active
Punkt 1. teilt Ihnen mit, dass Ihre Systemuhr mit der Standardzeitquelle synchronisiert ist, und Punkt 2. ist fast true, da RPi standardmäßig das Protokoll SNTP
anstelle von NTP
( REF ); Dies bedeutet, dass RPi eine Zeitquelle hat und diese verwendet.
Ich denke, das ist alles, was für eine bis zu Datumsantwort für 2021 , außer dies: Lesen Sie man timedatectl
, um mehr über seine Funktionen zu erfahren, oder Wenn TLDR diese Seite eine anständige Zusammenfassung hat.
Kommentare
- Systemuhr synchronisiert: nein
- @Arrow_Raider: Ihr ‚ Punkt ist ???
Antwort
Die Uhrzeit sollte bereits aktualisiert werden. Der NTPD-Server sollte direkt nach der Auslagerungsdatei und vor SSHD starten.
Überprüfen Sie Ihre Datei /etc/ntp.conf, um sicherzustellen, dass sie konfiguriert ist.
Es sollte mindestens ein Server aufgelistet sein. Ich verwende time.nrc.ca für meinen Server.
Die Handbuchseite für ntp.conf finden Sie hier: http://linux.die.net/man/5/ntp.conf
Antwort
Der Rasberry Pi meines Sohnes würde die sofort einsatzbereite Zeit nach dem Versuch nicht aktualisieren Alle oben genannten Vorschläge Ich konnte es manuell, aber nicht automatisch aktualisieren lassen. Schließlich, nachdem ich auch anderswo erfolglos gesucht hatte, stellte ich fest, dass das ntp.In der mit dem Rasberry Pi gelieferten conf-Datei wurden die folgenden Zeilen auskommentiert:
#restrict 127.0.0.1 #restrict ::1
Ich habe
sudo nano /etc/ntp.conf
im Terminal, um die ntp conf-Datei so zu bearbeiten, dass sie jetzt lautet:
# Local users may interrogate the ntp server more closely. restrict 127.0.0.1 restrict ::1
Das hat das Problem für uns gelöst. Es wird sowohl mit dem WLAN als auch mit dem Ethernet-Kabel aktualisiert. Ich weiß nicht, ob es ohne die oben vorgeschlagene Änderung von rc.local mit WiFi aktualisiert werden würde, da ich diese Änderung bereits vorgenommen habe, als ich die oben genannte Lösung gefunden habe, und sie nicht rückgängig gemacht habe.
Antwort
Ich habe die Anwendung timedatectl
gefunden, um mir zu helfen, wenn ich ein ähnliches Problem hatte Standardmäßig installiert und „–help“ bietet einen ziemlich guten und einfachen Überblick über die Verwendung des Tools.
Hinweis: Stellen Sie sicher, dass Ihre Zeitzone richtig eingestellt ist, was auch dieses Tool kann.
Antwort
Sie müssen ntp nicht verwenden, um das Problem zu lösen. Es gibt ein Skript, das das Datum von einem Server liest und Sie müssen nur das Datum als Ergebnis dieses Skripts festlegen (Ihr Raspberry Pi muss mit dem Internet verbunden sein). Anschließend müssen Sie diesen Befehl beim Start ausführen.
Schritt 1: Ruft das Datum von einem Server ab.
sudo date -s "$(wget -qSO- --max-redirect=0 google.com 2>&1 | grep Date: | cut -d" " -f5-8)Z"
Schritt 2: Führen Sie den Befehl beim Start aus, indem Sie ihn der Datei /etc/rc.local
hinzufügen (unter Ubuntu 16.04).
sudo gedit /etc/rc.local
KREDITE:
1- https://askubuntu.com/a/655528/572294
2- https://askubuntu.com/a/1199/572294
Kommentare
- Möglicherweise müssen Sie
ntp
aber Sie sollten. ‚ ist besser, schneller, genauer und entspricht dem Industriestandard. ‚ erfinden Sie bitte keine eigenen seltsamen Dinge, wenn gute Standards existieren. - ‚ hilft nicht viel Wenn Ihr RasPi rund um die Uhr läuft.
Antwort
Ich hatte ein ähnliches Problem mit einem nicht synchronisierten Pi . Keine dieser Lösungen hat funktioniert. Es stellte sich heraus, dass meine Netzwerkumgebung den NTP-Port blockierte (123). Die Lösung für mich war
sudo apt install htpdate
entnommen aus: https://www.raspberrypi.org/forums/viewtopic.php?t=222236
Aktualisiert stattdessen die Systemuhr über HTTP-Aufrufe.
Antwort
Dies ist der Ansatz, den ich letztendlich gewählt habe. Viele dieser Antworten schienen auf Dinge hinzuweisen, die beim Betrachten meines Raspian-Systems nicht überprüft wurden:
$ cat /etc/os-release PRETTY_NAME="Raspbian GNU/Linux 9 (stretch)" NAME="Raspbian GNU/Linux" VERSION_ID="9" VERSION="9 (stretch)" ID=raspbian ID_LIKE=debian HOME_URL="http://www.raspbian.org/" SUPPORT_URL="http://www.raspbian.org/RaspbianForums" BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs"
Ich hatte nichts, was in Protokollen angezeigt wurde dass timedatectl
irgendetwas getan hat oder dass ntp
im Up-Status der Netzwerkkarte synchronisiert wurde oder dass NTPD sogar installiert / konfiguriert wurde.
Am Ende habe ich dies lediglich zu meiner /etc/rc.local
hinzugefügt:
$ cat /etc/rc.local logger "Beginning force syncing NTP..." service ntp stop ntpd -gq service ntp start logger "Finished force syncing NTP..."
und installiert ntp
:
$ sudo apt-get install ntp
Daraus ergibt sich /var/log/syslog
:
Aug 5 09:10:20 pi-hole ntp[526]: Starting NTP server: ntpd. Aug 5 09:10:20 pi-hole ntpd[555]: proto: precision = 1.458 usec (-19) Aug 5 09:10:20 pi-hole ntpd[555]: Listen and drop on 0 v6wildcard [::]:123 Aug 5 09:10:20 pi-hole ntpd[555]: Listen and drop on 1 v4wildcard 0.0.0.0:123 Aug 5 09:10:20 pi-hole ntpd[555]: Listen normally on 2 lo 127.0.0.1:123 Aug 5 09:10:20 pi-hole ntpd[555]: Listen normally on 3 eth0 192.168.1.85:123 Aug 5 09:10:20 pi-hole ntpd[555]: Listen normally on 4 lo [::1]:123 Aug 5 09:10:20 pi-hole ntpd[555]: Listen normally on 5 eth0 [fe80::f5ea:7663:4ec:784d%2]:123 Aug 5 09:10:20 pi-hole ntpd[555]: Listening on routing socket on fd #22 for interface updates Aug 5 09:10:21 pi-hole ntpd[555]: ntpd exiting on signal 15 (Terminated) Aug 5 09:10:21 pi-hole ntp[661]: Stopping NTP server: ntpd. Aug 5 09:10:21 pi-hole ntpd[674]: ntpd [email protected] Sat Mar 10 18:03:33 UTC 2018 (1): Starting Aug 5 09:10:21 pi-hole ntpd[674]: Command line: ntpd -gq Aug 5 09:10:21 pi-hole ntpd[674]: proto: precision = 0.625 usec (-21) Aug 5 09:10:21 pi-hole ntpd[674]: Listen and drop on 0 v6wildcard [::]:123 Aug 5 09:10:21 pi-hole ntpd[674]: Listen and drop on 1 v4wildcard 0.0.0.0:123 Aug 5 09:10:21 pi-hole ntpd[674]: Listen normally on 2 lo 127.0.0.1:123 Aug 5 09:10:21 pi-hole ntpd[674]: Listen normally on 3 eth0 192.168.1.85:123 Aug 5 09:10:21 pi-hole ntpd[674]: Listen normally on 4 lo [::1]:123 Aug 5 09:10:21 pi-hole ntpd[674]: Listen normally on 5 eth0 [fe80::f5ea:7663:4ec:784d%2]:123 Aug 5 09:10:21 pi-hole ntpd[674]: Listening on routing socket on fd #22 for interface updates Aug 5 09:10:34 pi-hole ntpd[674]: Soliciting pool server 198.98.57.16 Aug 5 09:10:35 pi-hole ntpd[674]: Soliciting pool server 74.82.59.149 Aug 5 09:10:36 pi-hole ntpd[674]: Soliciting pool server 23.131.160.7 Aug 5 09:10:36 pi-hole ntpd[674]: Soliciting pool server 52.37.26.163 Aug 5 09:10:36 pi-hole ntpd[674]: Soliciting pool server 204.2.134.163 Aug 5 09:10:36 pi-hole ntpd[674]: Soliciting pool server 96.126.100.203 Aug 5 09:10:36 pi-hole ntpd[674]: Soliciting pool server 199.223.248.101 Aug 5 09:10:36 pi-hole ntpd[674]: Soliciting pool server 66.228.42.59 Aug 5 09:10:36 pi-hole ntpd[674]: Soliciting pool server 208.75.89.4 Aug 5 09:10:37 pi-hole ntpd[674]: Soliciting pool server 204.2.134.164 Aug 5 09:10:37 pi-hole ntpd[674]: Soliciting pool server 104.236.116.147 Aug 5 09:10:38 pi-hole ntpd[674]: Soliciting pool server 204.9.54.119 Aug 5 09:10:48 pi-hole ntpd[674]: ntpd: time set +6.769186 s Aug 5 09:10:49 pi-hole ntpd[853]: ntpd [email protected] Sat Mar 10 18:03:33 UTC 2018 (1): Starting Aug 5 09:10:49 pi-hole ntpd[853]: Command line: /usr/sbin/ntpd -p /var/run/ntpd.pid -g -u 111:114 Aug 5 09:10:49 pi-hole ntp[844]: Starting NTP server: ntpd. Aug 5 09:10:49 pi-hole ntpd[856]: proto: precision = 0.625 usec (-21) Aug 5 09:10:49 pi-hole ntpd[856]: Listen and drop on 0 v6wildcard [::]:123 Aug 5 09:10:49 pi-hole ntpd[856]: Listen and drop on 1 v4wildcard 0.0.0.0:123 Aug 5 09:10:49 pi-hole ntpd[856]: Listen normally on 2 lo 127.0.0.1:123 Aug 5 09:10:49 pi-hole ntpd[856]: Listen normally on 3 eth0 192.168.1.85:123 Aug 5 09:10:49 pi-hole ntpd[856]: Listen normally on 4 lo [::1]:123 Aug 5 09:10:49 pi-hole ntpd[856]: Listen normally on 5 eth0 [fe80::f5ea:7663:4ec:784d%2]:123 Aug 5 09:10:49 pi-hole ntpd[856]: Listening on routing socket on fd #22 for interface updates Aug 5 09:10:49 pi-hole root: Finished force syncing NTP...
Kommentare
- ‚ funktioniert nicht auf minimalem Raspbian:
Failed to start ntp.service: Unit ntp.service not found.
Und ntpd ‚ existiert auch nicht. Der Pi gewinnt definitiv irgendwann Zeit. (Ich ‚ prüfe dies, weil meine HTTPS-Curls ohne -k fehlschlagen, wenn sie zuvor ausgeführt werden.) - @StevenLu – I ‚ aktualisiert den A ‚ er, um auch die Installation von ntp einzuschließen.
- @StevenLu –
apt-get install ntp
Antwort
Ich verwende Folgendes für das Standard-Image, um die Zeit zu synchronisieren, ohne zusätzliche Pakete zu installieren:
timedatectl set-local-rtc 0 timedatectl set-ntp 1 timedatectl status
Antwort
Ich habe dies irgendwo in den Interwebs gefunden. Scheint auf Buster zu funktionieren:
sudo timedatectl set-ntp false && sudo timedatectl set-time "$(date --iso-8601=seconds | cut -d "+" -f1 | tr T " ")" && sudo timedatectl set-ntp true
Ich bin nicht sicher, ob der Zwischenbefehl (set-time
) wirklich ist benötigt.