Raspberry Pi nie ma zegara sprzętowego. Jak zmusić NTPD do aktualizowania daty / godziny natychmiast po każdym uruchomieniu?

Pracuję Raspbian , a Raspberry Pi jest połączony za pomocą kabel Ethernet .

Komentarze

  • Mój już to robi z box. Z jakiej dystrybucji korzystasz?
  • Raspbian Wheezy
  • @Thorb Pi jest połączony za pomocą kabla Ethernet / dhcp. Po prostu nie otrzymuje aktualnej daty po uruchomieniu, zajmuje to chwilę (10 do 45 minut)
  • Zrobi to automatycznie, po kilku minutach. Upewnij się, że ustawiłeś zegar główny w National Bureau of Standards, time.nist.gov zgodnie z opisem tutaj: raspberrypi.stackexchange.com/questions/68811/…
  • Wygląda na to, że nie ktoś jeszcze odpowiedział na to pytanie w zadowalający sposób – tj. jak zsynchronizować czas przez NTP po uruchomieniu (tj. bez ponownego uruchamiania).

Odpowiedź

Po szukając wokół, ta metoda zadziałała dla mnie. Jak wiesz, Raspberry Pi 3 ma domyślnie wyłączone NTP. Po prostu wpisując to, obsługa NTP zostanie włączona:

sudo timedatectl set-ntp True 

Sprawdź wynik za pomocą timedatectl status

W przypadku ostrzeżenia może być konieczne uruchomienie również sudo timedatectl set-local-rtc true.

Komentarze

  • Dzięki, to w końcu pomogło mi i wydaje się, że jest to właściwy sposób, pomimo wcześniejszych odpowiedzi.
  • To najlepsza odpowiedź, bardzo mi pomogła. Możesz użyć ' sudo ', aby uniknąć wpisywania hasła (przydatne w przypadku skryptów, które je uruchamiają). Jaki jest cel polecenia sekund? set-local-rtc

Odpowiedź

Zrób apt-get install ntpdate .

ntpdate będzie działać po uruchomieniu interfejsu Ethernet i ustawi czas z serwera ntp (patrz /etc/default/ntpdate).

Jeśli ntpd jest uruchomiony, ntpdate nic nie zrobi, jednak ntpdate będzie działać przed ntpd podczas rozruchu – powinno to działać, aby ustawić czas rozruchu, o ile istnieje połączenie Ethernet.

Komentarze

  • zapasowy Raspbian już to wszystko będzie.
  • @scruss mine didn ' t. (2013-02-09 wheezy rasbian)
  • Mój też nie, musiałem to zrobić ręcznie.
  • Jeśli zostanie poprawnie skonfigurowany, zrobi to automatycznie – chociaż może to zająć kilka minut.
  • Linux raspberrypi 4.14.30-v7+ #1102 SMP Mon Mar 26 16:45:49 BST 2018 armv7l GNU/Linux nie ' też go nie mam.

Odpowiedź

Jeśli twój zegar jest daleko, może być konieczne wymuszenie synchronizacji ntp, wykonując:

sudo /etc/init.d/ntp stop sudo ntpd -q -g sudo /etc/init.d/ntp start 

Komentarze

  • Zwraca błąd ” sudo: ntpd: nie znaleziono polecenia ”
  • ntpd musi być zainstalowany przy użyciu polecenia
  • Jest zainstalowany , nie jestem ignorantem 🙂
  • Czy możesz odwiedzić stronę raspberrypi.stackexchange.com/questions/47542/… ? Opublikowałem tam szczegóły.
  • To było absolutnie rozwiązanie mojego problemu, ale okazało się, że jest to tymczasowe rozwiązanie do czasu ponownego uruchomienia. W końcu podczas zamykania systemu wyłapałem błąd, że nie mógł ' t zaktualizować hwclock, ponieważ zegar hw miał przyszłą datę (nie mam pojęcia, jak to się stało). Ale rozwiązaniem była siła aktualizacji hwclock. To wymusiło aktualizację fałszywego zegara sprzętowego, a następnie podczas rozruchu czas był co najmniej zbliżony do bieżącego, więc ntp mógł to wykonać normalnie '.

Odpowiedź

Jeśli ustawisz strefę czasową w raspi-config, Raspberry Pi automatycznie zaktualizuje czas podczas rozruchu, jeśli masz połączenie z Internetem.

  1. sudo raspi-config
  2. Wybierz Internationalisation Options
  3. Wybierz I2 Change Timezone
  4. Wybierz swój obszar geograficzny
  5. Wybierz najbliższe miasto
  6. Wybierz Finish
  7. Wybierz Yes, aby ponownie uruchomić teraz

Komentarze

  • to działało dobrze dla mnie
  • I2 Change Timezone opcja nie ' już nie istnieje
  • Istnieje, przynajmniej w Raspbian Buster.
  • ” Opcje internacjonalizacji ” jest teraz nazywa się ” Opcje lokalizacji ”
  • ” najbliższe miasto ” nie jest właściwą drogą. musisz wybrać miasto, do którego należy Twoja strefa czasowa, które może być najbliższe lub nie …

Odpowiedź

Zobacz post na forum Godzina nie synchronizuje się na Pi 3 i z oficjalnym kluczem sprzętowym .

ntpd emituje pakiety IP / UDP z Pole ToS ustawione na 0xc0. Jest to więc dość podobne do innego problemu, który mam (i wielu innych) z Raspberry Pi3 podczas obsługi przez wewnętrzny interfejs Wi-Fi.

Aby obejść ten problem, dodaj polecenie

/sbin/iptables -t mangle -I POSTROUTING 1 -o wlan0 -p udp --dport 123 -j TOS --set-tos 0x00 

do pliku

/etc/rc.local 

przed linią wyjścia 0. Następnie uruchom ponownie i sprawdź.

Komentarze

  • Miałem ten sam problem, co przy instalacji RPi3 dla XMas, a Ty rozwiązałeś mój problem. Świetnie !!!

Odpowiedź

Najwyraźniej to pytanie brzmi ” poddane recyklingowi ” z jakiegoś powodu, więc wydaje się właściwe, aby ponownie wykorzystać również niektóre stare odpowiedzi 🙂

Teraz jest rok 2021 …

To pytanie zadano w 2013 roku. ntpd było oprogramowaniem do pomiaru czasu zawartym w dystrybucji Raspbian w tamtym czasie (wheezy) . Jednak zmieniło się to wraz z dystrybucją stretch w 2017 r., Kiedy systemd-timesyncd zastąpił ntpd. Przyczyny tej zmiany i niektóre techniczne kompromisy zostały omówione w tej starej odpowiedzi dla osób zainteresowanych takimi rzeczami.

Odnosząc się do tego pytania, być może najważniejszym punktem w obecnym środowisku (po systemd) to: Jeśli zdecydujesz się zainstalować ntpd w ramach swojej obecnej dystrybucji Raspbian, pamiętaj, że systemd-timesyncd ” zrobi właściwą rzecz „! Sprawdza obecność innych demonów NTP i odpowiednio dostosowuje swoje zachowanie; to po prostu działa . Możesz przeczytać wszystko na ten temat, wpisując to w wierszu poleceń:

$ systemctl cat systemd-timesyncd 

Zwróć uwagę na kilka ostatnich wierszy:

# nie uruchamiaj timesyncd, jeśli mamy zainstalowany inny demon NTP
ConditionFileIsExecutable =! / usr / sbin / ntpd
ConditionFileIsExecutable =! / usr / sbin / openntpd
ConditionFileIsExecutable =! / Usr / sbin / chronyd
ConditionFileIsExecutable =! / Usr / sbin / VBoxService

Innymi słowy: sprawdza, czy którakolwiek z tych alternatywnych usług czasu jest uruchomiona w Twoim systemie, a jeśli tak, grzecznie ich zwleka za świadczenie usług pomiaru czasu.

” wymuś ” ntpd do aktualizacji po uruchomieniu ?!

To był OP pytanie. Odpowiedź (w 2021 r.) Nie uległa zmianie: Nie powinno to być konieczne w żadnym systemie RPi – chyba że ktoś zmienił domyślną konfigurację ! Możesz to sprawdzić w następujący sposób:

 $ 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  

Zwróć uwagę na dwie pozycje:

  1. System clock synchronized: yes
  2. NTP service: active

Pozycja 1. informuje, że zegar systemowy jest zsynchronizowana z dowolnym domyślnym źródłem czasu, a pozycja 2. jest prawie prawda, ponieważ RPi używa domyślnie protokołu SNTP zamiast NTP ( REF ); tzn. oznacza to, że RPi ma źródło czasu i korzysta z niego.

Myślę, że „to wszystko”, co jest potrzebne do do- data odpowiedź na 2021 r. , z wyjątkiem tego: przeczytaj man timedatectl, aby dowiedzieć się więcej o jego możliwościach, lub jeśli TLDR ta strona ma przyzwoite podsumowanie.

Komentarze

  • Zsynchronizowano zegar systemowy: nie
  • @Arrow_Raider: Yer ' chodzi o ???

Odpowiedź

Powinien już aktualizować czas. Serwer NTPD powinien wystartować zaraz po pliku wymiany, a przed SSHD.

Sprawdź swój plik /etc/ntp.conf, aby upewnić się, że jest skonfigurowany.

Powinien zawierać co najmniej jeden serwer. Używam time.nrc.ca dla mojego serwera.

Strona podręcznika ntp.conf jest tutaj: http://linux.die.net/man/5/ntp.conf

Odpowiedź

Rasberry Pi mojego syna nie aktualizował czasu po wyjęciu z pudełka i po próbie wszystkie powyższe sugestie mogłem zaktualizować ręcznie, ale nie automatycznie.W końcu po sprawdzeniu również gdzie indziej bez powodzenia, stwierdziłem, że ntp.conf, który został dostarczony z Rasberry Pi, miał zakomentowane następujące linie:

#restrict 127.0.0.1 #restrict ::1 

Użyłem

sudo nano /etc/ntp.conf 

w terminalu, aby edytować plik conf ntp na teraz:

# Local users may interrogate the ntp server more closely. restrict 127.0.0.1 restrict ::1 

To rozwiązało problem za nas. Aktualizuje się zarówno za pomocą WiFi, jak i kabla Ethernet. Nie wiem, czy zaktualizowałoby się za pomocą WiFi bez zmiany na rc.local sugerowanej powyżej, ponieważ zanim znalazłem powyższe rozwiązanie, już dokonałem tej zmiany i nie cofnąłem jej.

Odpowiedź

Znalazłem aplikację timedatectl, która pomogła mi, gdy miałem podobny problem. To jest zainstalowany domyślnie, a „–help” daje całkiem niezły i prosty przegląd sposobu korzystania z narzędzia.

Uwaga: upewnij się, że strefa czasowa jest ustawiona prawidłowo, co to narzędzie również może zrobić.

Odpowiedź

Nie musisz używać ntp do rozwiązania problemu. Istnieje skrypt odczytujący datę z serwera i wystarczy ustawić datę tak, aby była wynikiem działania tego skryptu (Twoje Raspberry Pi musi być połączone z Internetem). Następnie musisz uruchomić to polecenie podczas uruchamiania.

Krok 1: Pobierz datę z serwera.

sudo date -s "$(wget -qSO- --max-redirect=0 google.com 2>&1 | grep Date: | cut -d" " -f5-8)Z" 

Krok2: Uruchom polecenie podczas uruchamiania, dodając je do pliku /etc/rc.local (działało na Ubuntu 16.04).

sudo gedit /etc/rc.local 

KREDYTY:

1- https://askubuntu.com/a/655528/572294

2- https://askubuntu.com/a/1199/572294

Komentarze

  • Możesz nie potrzebować ntp, ale powinieneś. Jest ' lepszy, szybszy, dokładniejszy i stanowi standard branżowy. Nie ' nie wymyślaj własnych dziwnych rzeczy, gdy istnieją dobre standardy, proszę.
  • To nie ' nie pomaga zbyt wiele jeśli Twoje RasPi działa 24 godziny na dobę, 7 dni w tygodniu.

Odpowiedź

Miałem podobny problem z brakiem synchronizacji Pi . Żadne z tych rozwiązań nie zadziałało. Okazuje się, że moje środowisko sieciowe blokowało port NTP (123). Dla mnie rozwiązaniem było

sudo apt install htpdate 

pobrane z: https://www.raspberrypi.org/forums/viewtopic.php?t=222236

Który zamiast tego aktualizuje zegar systemowy za pomocą wywołań HTTP.

Odpowiedz

To to podejście, które ostatecznie obrałem. Wiele z tych odpowiedzi zdawało się wskazywać na rzeczy, które po prostu nie były sprawdzane, gdy spojrzałem na mój system Raspian:

$ 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" 

W dziennikach nie było nic wskazującego że timedatectl coś robił lub że ntp synchronizowało się na karcie sieciowej lub że NTPD zostało nawet zainstalowane / skonfigurowane.

W końcu po prostu dodałem to do mojego /etc/rc.local:

$ cat /etc/rc.local logger "Beginning force syncing NTP..." service ntp stop ntpd -gq service ntp start logger "Finished force syncing NTP..." 

I zainstalowałem ntp:

$ sudo apt-get install ntp 

W rezultacie /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... 

Komentarze

  • Nie ' nie działa na minimalnym raspbian: Failed to start ntp.service: Unit ntp.service not found. I ntpd też nie istnieje '. Pi zdecydowanie w końcu zyskuje na czasie. (Patrzę na to ', ponieważ moje loki HTTPS zawodzą bez -k, gdy są uruchomione wcześniej)
  • @StevenLu – I ' zaktualizujemy A ' er, aby uwzględnić również instalację ntp.
  • @StevenLu – apt-get install ntp

Odpowiedź

Na domyślnym obrazie używam następującego polecenia, aby zsynchronizować czas bez instalowania dodatkowych pakietów:

timedatectl set-local-rtc 0 timedatectl set-ntp 1 timedatectl status 

Odpowiedź

Znalazłem to gdzieś w sieciach. Wydaje się, że działa w Buster:

sudo timedatectl set-ntp false && sudo timedatectl set-time "$(date --iso-8601=seconds | cut -d "+" -f1 | tr T " ")" && sudo timedatectl set-ntp true 

Nie mam pewności, czy polecenie pośrednie (set-time) jest naprawdę potrzebne.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *