Raspberry Pi nu are ceas hardware. Cum forțez NTPD să actualizeze data / ora imediat după fiecare pornire?
Execut Raspbian și Raspberry Pi este conectat utilizând un cablu Ethernet .
Comentarii
- Al meu face deja asta din Ce disto folosiți?
- Raspbian Wheezy
- @Thorb Pi este conectat cu cablu Ethernet / dhcp. Pur și simplu nu primește o dată validă după pornire, durează ceva timp (10 până la 45 de minute)
- O va face automat, după câteva minute. Asigurați-vă că ați setat-o să utilizeze Master Clock la Biroul Național de Standarde, time.nist.gov așa cum este descris aici: raspberrypi.stackexchange.com/questions/68811/…
- Se pare că nu cineva a răspuns încă la această întrebare în mod satisfăcător – adică cum să sincronizați timpul prin NTP după o pornire (adică fără repornire).
Răspuns
După căutând în jur, această metodă a funcționat pentru mine. După cum știți, Raspberry Pi 3 are NTP dezactivat în mod implicit. Deci, doar tastând acest lucru, suportul NTP va fi activat:
sudo timedatectl set-ntp True
Verificați rezultatul cu timedatectl status
În caz de avertisment, poate fi necesar să executați și sudo timedatectl set-local-rtc true
.
Comentarii
- Mulțumesc, acest lucru m-a ajutat în cele din urmă și pare a fi calea corectă, în ciuda răspunsurilor anterioare.
- Acesta este cel mai bun răspuns, m-a ajutat foarte mult. Puteți utiliza ‘ sudo ‘ pentru a evita introducerea parolei (utilă pentru scripturile care o rulează). Care este scopul comenzii secunde? set-local-rtc
Răspuns
Faceți un apt-get install ntpdate
.
ntpdate
va rula când este afișată o interfață Ethernet și va seta ora de pe un server ntp (consultați /etc/default/ntpdate
).
Dacă ntpd
rulează, ntpdate nu va face nimic, totuși ntpdate
va rula înainte de ntpd
la pornire – deci acest lucru ar trebui să funcționeze pentru a seta ora la pornire atâta timp cât există o conexiune Ethernet.
Comentarii
- stoc Raspbian va avea deja toate acestea.
- @scruss mine nu ‘ t. (2013-02-09 wheezy rasbian)
- De asemenea, a mea nu a făcut-o, a trebuit să o facă manual.
- Dacă este configurată corect, o va face automat – deși poate dura câteva minute.
-
Linux raspberrypi 4.14.30-v7+ #1102 SMP Mon Mar 26 16:45:49 BST 2018 armv7l GNU/Linux
nu l-a avut nici ‘.
Răspuns
Dacă ceasul este oprit, poate fi necesar să forțați ntp să se sincronizeze făcând:
sudo /etc/init.d/ntp stop sudo ntpd -q -g sudo /etc/init.d/ntp start
Comentarii
- Returnează eroarea ” sudo: ntpd: comanda nu a fost găsită ”
- ntpd trebuie să fie instalat pentru a utiliza comanda
- Este este instalat, nu sunt atât de ignorant 🙂
- Puteți vizita raspberrypi.stackexchange.com/questions/47542/… ? Am postat detalii acolo.
- Aceasta a fost absolut soluția la problema mea, dar am găsit că este temporară până când am repornit. În cele din urmă am observat o eroare la închidere că nu putea ‘ să actualizeze hwclock, deoarece ceasul hw avea o dată viitoare (nu știu cum sa întâmplat asta). Dar soluția a fost o forță de actualizare hwclock. Acest lucru a forțat actualizarea la ceasul hardware fals și apoi la pornire timpul a fost cel puțin apropiat de curent, astfel încât ntp să poată face treaba ‘ în mod normal.
Răspuns
Dacă setați fusul orar în raspi-config
Raspberry Pi va actualiza automat timpul de pornire, dacă este conectat la internet.
-
sudo raspi-config
- Selectați
Internationalisation Options
- Selectați
I2 Change Timezone
- Selectați zona geografică
- Selectați cel mai apropiat oraș
- Selectați
Finish
- Selectați
Yes
pentru a reporni acum
Comentarii
- acest lucru a funcționat bine pentru mine
-
I2 Change Timezone
opțiunea nu ‘ t mai există - Există, cel puțin în Raspbian Buster.
- ” Opțiuni de internaționalizare ” este numit acum ” Opțiuni de localizare ”
- ” cel mai apropiat oraș ” nu este calea corectă. trebuie să selectați orașul în care aparține fusul orar, care poate fi cel mai apropiat sau nu …
Răspuns
Consultați postarea pe forum Ora nu se sincronizează pe Pi 3 și cu dongle oficial .
ntpd emite pachete IP / UDP cu Câmpul ToS setat la 0xc0. Deci, aceasta este destul de similară cu cealaltă problemă pe care o am (și multe altele) cu Raspberry Pi3 atunci când operează pe o interfață internă Wi-Fi.
Ca soluție, adăugați comanda
/sbin/iptables -t mangle -I POSTROUTING 1 -o wlan0 -p udp --dport 123 -j TOS --set-tos 0x00
la fișier
/etc/rc.local
înainte de linia de ieșire 0. Apoi, reporniți și verificați.
Comentarii
- Am avut aceeași problemă ca și când am instalat RPi3 pe care l-am obținut pentru XMas și mi-ați rezolvat problema. Minunat !!!
Răspuns
Se pare că această întrebare este ” reciclat ” dintr-un anumit motiv și, așadar, pare adecvat să reciclezi și câteva răspunsuri vechi 🙂
Anul este acum 2021 …
Această întrebare a fost adresată în 2013. ntpd
a fost software-ul de cronometrare inclus în distribuția Raspbian la acel moment (wheezy
) . Cu toate acestea, acest lucru s-a schimbat odată cu distribuția stretch
în 2017 când systemd-timesyncd
a înlocuit ntpd
. Motivele acestei schimbări și unele dintre compromisurile tehnice au fost discutate în acest vechi răspuns pentru cei care sunt interesați de astfel de lucruri.
În ceea ce privește întrebarea de aici, poate cel mai important punct din mediul actual (post- systemd
) este aceasta: dacă decideți să instalați ntpd
sub distribuția actuală Raspbian, știți că systemd-timesyncd
va ” face ceea ce trebuie „! Acesta va verifica prezența altor demoni NTP și își va regla comportamentul în consecință; funcționează doar . Puteți citi totul despre aceasta introducând acest lucru la linia de comandă:
$ systemctl cat systemd-timesyncd
Rețineți ultimele rânduri:
# don „t run timesyncd if we have another NTP daemon installed
ConditionFileIsExecutable =! / usr / sbin / ntpd
ConditionFileIsExecutable =! / usr / sbin / openntpd
ConditionFileIsExecutable =! / Usr / sbin / chronyd
ConditionFileIsExecutable =! / Usr / sbin / VBoxService
Cu alte cuvinte: systemd-timesyncd
verifică dacă vreunul dintre aceste servicii de timp alternativ rulează pe sistemul dvs. și, în caz afirmativ, acesta diferă în mod politicos pentru furnizarea serviciilor dvs. de cronometrare.
” forțați ” ntpd
pentru a actualiza după pornire ?!
Acesta a fost OP întrebarea. Răspunsul (în 2021) nu s-a schimbat: Nu ar trebui să fie necesar să faceți acest lucru pe orice sistem RPi – decât dacă cineva a modificat configurația implicită ! Puteți verifica acest lucru după cum urmează:
$ 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
Rețineți două elemente:
-
System clock synchronized: yes
-
NTP service: active
Elementul 1. vă spune că ceasul sistemului dvs. este sincronizat cu orice sursă de timp implicită, iar Elementul 2. este aproape adevărat în sensul că RPi folosește implicit protocolul SNTP
în loc de NTP
( REF ); adică acest lucru înseamnă că RPi are o sursă de timp și o folosește.
Cred că „este tot ce este necesar pentru un up-to- răspuns la data pentru 2021 , cu excepția acestui: citiți man timedatectl
pentru a afla mai multe despre capacitățile sale sau dacă TLDR această pagină are un rezumat decent.
Comentarii
- Ceasul sistemului este sincronizat: nu
- @Arrow_Raider: Yer ‘ punctul fiind ???
Răspuns
Ar trebui să actualizeze deja ora. Serverul NTPD ar trebui să pornească imediat după fișierul de swap și înainte de SSHD.
Verificați fișierul /etc/ntp.conf pentru a vă asigura că este configurat.
Ar trebui să enumere cel puțin un server. Folosesc time.nrc.ca pentru serverul meu.
Pagina manuală pentru ntp.conf este aici: http://linux.die.net/man/5/ntp.conf
Răspuns
Rasberry Pi al fiului meu nu va actualiza timpul din cutie și după ce a încercat toate sugestiile de mai sus le-am putut actualiza manual, dar nu automat. În cele din urmă, după ce am căutat și altundeva fără succes, am constatat că ntp.fișierul conf care a venit cu Rasberry Pi a fost comentat următoarele rânduri:
#restrict 127.0.0.1 #restrict ::1
Am folosit
sudo nano /etc/ntp.conf
în terminal pentru a edita fișierul conf ntp pentru a fi acum:
# Local users may interrogate the ntp server more closely. restrict 127.0.0.1 restrict ::1
Asta a rezolvat problema pentru noi. Se actualizează atât prin cablul WiFi, cât și prin cablul Ethernet. Nu știu dacă s-ar actualiza cu WiFi fără trecerea la rc.local sugerată mai sus, deoarece până când am găsit soluția de mai sus, am făcut deja acea modificare și nu am anulat-o.
Răspuns
Am găsit aplicația timedatectl
care să mă ajute când aveam o problemă similară. instalat implicit și „–help” oferă o prezentare generală destul de bună și simplă a modului de utilizare a instrumentului.
Notă: asigurați-vă că fusul orar este setat corect, lucru pe care îl poate face și acest instrument. p>
Răspuns
Nu trebuie să utilizați ntp pentru a rezolva problema. Există un script care citește data de pe un server și trebuie doar să setați data pentru a fi rezultatul acelui script (Raspberry Pi trebuie conectat la internet). Apoi, trebuie să rulați acea comandă la pornire.
Pasul 1: Primiți data de pe un server.
sudo date -s "$(wget -qSO- --max-redirect=0 google.com 2>&1 | grep Date: | cut -d" " -f5-8)Z"
Pasul 2: Rulați comanda la pornire adăugând-o la fișierul /etc/rc.local
(Lucrat pe Ubuntu 16.04).
sudo gedit /etc/rc.local
CREDITE:
1- https://askubuntu.com/a/655528/572294
2- https://askubuntu.com/a/1199/572294
Comentarii
- Este posibil să nu fie necesar să utilizați
ntp
dar ar trebui. Este ‘ mai bun, mai rapid, mai precis și standardul industriei. Nu ‘ nu-ți compui lucrurile ciudate atunci când există standarde bune, te rog. - Nu ajută mult ‘ dacă RasPi rulează 24/7.
Răspunde
Am avut o problemă similară cu un Pi care nu se sincronizează . Niciuna dintre aceste soluții nu a funcționat. Se pare că mediul meu de rețea bloca portul NTP (123). Soluția pentru mine a fost
sudo apt install htpdate
preluată de la: https://www.raspberrypi.org/forums/viewtopic.php?t=222236
Care actualizează ceasul sistemului prin apeluri HTTP.
Răspunde
Acest este abordarea pe care am ajuns să o iau. Multe dintre aceste răspunsuri păreau să indice lucruri care tocmai nu au fost verificate când m-am uitat la sistemul meu 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"
Nu aveam nimic care să apară în jurnale că timedatectl
făcea orice sau că ntp
se sincroniza în starea de sus a NIC sau că NTPD a fost chiar instalat / configurat.
La final, am adăugat acest lucru la /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 am instalat ntp
:
$ sudo apt-get install ntp
Ceea ce are ca rezultat acest lucru în /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...
Comentarii
- Nu funcționează ‘ pe raspbian minim:
Failed to start ntp.service: Unit ntp.service not found.
Și ntpd nu există nici ‘. Cu siguranță, Pi câștigă timp. (‘ Mă uit la asta deoarece buclele HTTPS nu reușesc fără -k când sunt rulate anterior) - @StevenLu – I ‘ Voi actualiza A ‘ er pentru a include și instalarea ntp.
- @StevenLu –
apt-get install ntp
Răspuns
Folosesc următoarele despre imaginea implicită pentru a sincroniza timpul fără a instala pachete suplimentare:
timedatectl set-local-rtc 0 timedatectl set-ntp 1 timedatectl status
Răspuns
Am găsit asta undeva pe interwebs. Se pare că funcționează pe Buster:
sudo timedatectl set-ntp false && sudo timedatectl set-time "$(date --iso-8601=seconds | cut -d "+" -f1 | tr T " ")" && sudo timedatectl set-ntp true
Nu sunt sigur dacă comanda intermediară (set-time
) este într-adevăr necesar.