Raspberry Pi mangler en maskinvareklokke. Hvordan tvinger jeg NTPD til å oppdatere dato / tid umiddelbart etter hver oppstart?
Jeg kjører Raspbian og Raspberry Pi er koblet til ved hjelp av en Ethernet -kabel.
Kommentarer
- Mine gjør det allerede ut av Hva disto bruker du?
- Raspbian Wheezy
- @Thorb Pi er koblet til ethernet-kabel / dhcp. Det får rett og slett ikke en gyldig dato etter oppstart, det tar litt tid (10 til 45 minutter)
- Det vil gjøre det automatisk, etter et par minutter. Pass på at du har satt den til å bruke Master Clock på National Bureau of Standards, time.nist.gov som beskrevet her: raspberrypi.stackexchange.com/questions/68811/…
- Ser ut til at ingen man har ennå svart på dette spørsmålet tilfredsstillende – dvs. hvordan man synkroniserer tiden via NTP etter en oppstart (dvs. uten omstart).
Svar
Etter å lete rundt fungerte denne metoden for meg. Som du vet har Raspberry Pi 3 NTP deaktivert som standard. Så ved å bare skrive dette vil NTP-støtten være aktivert:
sudo timedatectl set-ntp True
Kontroller resultatet med timedatectl status
I tilfelle advarsel, må du kanskje kjøre sudo timedatectl set-local-rtc true
også.
Kommentarer
- Takk, dette hjalp meg endelig, og ser ut til å være den rette måten, til tross for tidligere svar.
- Det er det beste svaret, hjalp meg mye. Du kan bruke ‘ sudo ‘ for å unngå å skrive inn passordet ditt (nyttig for skript som kjører det). Hva er hensikten med sekunder-kommandoen? set-local-rtc
Svar
Gjør et apt-get install ntpdate
.
ntpdate
vil kjøre når et Ethernet-grensesnitt blir hentet, og angi tiden fra en ntp-server (se /etc/default/ntpdate
).
Hvis ntpd
kjører, vil ntpdate ikke gjøre noe, men ntpdate
vil kjøre før ntpd
ved oppstart – så dette bør ordne seg for å stille inn tiden ved oppstart så lenge det er en Ethernet-tilkobling.
Kommentarer
- lager Raspbian vil ha alt dette allerede.
- @scruss mine didn ‘ t. (2013-02-09 wheezy rasbian)
- Mine gjorde ikke det, måtte gjøre det manuelt.
- Hvis det er satt opp riktig, vil det gjøre det automatisk – selv om det kan ta noen minutter.
-
Linux raspberrypi 4.14.30-v7+ #1102 SMP Mon Mar 26 16:45:49 BST 2018 armv7l GNU/Linux
hadde ikke ‘ t det også.
Svar
Hvis klokken din er langt unna, må du kanskje tvinge ntp til å synkronisere ved å gjøre:
sudo /etc/init.d/ntp stop sudo ntpd -q -g sudo /etc/init.d/ntp start
Kommentarer
- Den returnerer feil » sudo: ntpd: kommandoen ble ikke funnet »
- ntpd må være installert for å bruke kommandoen
- Den er installert, jeg er ikke så ignorant 🙂
- Kan du gå raspberrypi.stackexchange.com/questions/47542/… ? Jeg har lagt ut detaljer der.
- Dette var absolutt løsningen på problemet mitt, men jeg syntes det var midlertidig til jeg startet på nytt. Til slutt fikk jeg en feil i nedleggelsen om at den ikke kunne ‘ t oppdaterer hwclock fordi hw-klokken hadde en fremtidig dato (ingen anelse om hvordan det skjedde). Men løsningen var en oppdateringskraft for hwclock. Det tvang oppdateringen til den falske maskinvareklokken, og da var tiden i det minste nær den nåværende, så ntp kunne gjøre det ‘ s jobb normalt.
Svar
Hvis du setter tidssonen i raspi-config
, vil Raspberry Pi automatisk oppdatere tid ved oppstart, hvis den er koblet til internett.
-
sudo raspi-config
- Velg
Internationalisation Options
- Velg
I2 Change Timezone
- Velg geografisk område
- Velg nærmeste by
- Velg
Finish
- Velg
Yes
for å starte på nytt nå
Kommentarer
- dette fungerte bra for meg
-
I2 Change Timezone
alternativet gjør ikke ‘ t eksisterer lenger - Den finnes, i det minste i Raspbian Buster.
- » Internasjonaliseringsalternativer » er nå kalt » Lokaliseringsalternativer »
- » nærmeste by » er ikke den rette måten. du må velge byen der tidssonen din hører hjemme, som kan være nærmest, eller ikke …
Svar
Se foruminnlegg Tid synkroniseres ikke på Pi 3 og med offisiell dongle .
ntpd sender ut IP / UDP-pakker med ToS-felt satt til 0xc0. Så det er ganske likt det andre problemet jeg (og mange andre) har med Raspberry Pi3 når det drives via et internt Wi-Fi-grensesnitt.
Som en løsning, legg til kommandoen
/sbin/iptables -t mangle -I POSTROUTING 1 -o wlan0 -p udp --dport 123 -j TOS --set-tos 0x00
til filen
/etc/rc.local
før avkjøringslinjen 0. Start deretter på nytt og sjekk.
Kommentarer
- Jeg hadde det samme problemet som jeg installerte RPi3 jeg fikk for XMas, og du løste problemet mitt. Flott !!!
Svar
Dette spørsmålet er tilsynelatende å være » resirkulert » av en eller annen grunn, og det virker derfor hensiktsmessig å resirkulere noen gamle svar også 🙂
Året er nå 2021 …
Dette spørsmålet ble stilt i 2013. ntpd
var tidtakingsprogramvaren som inngikk i Raspbian-distribusjon på den tiden (wheezy
) . Det endret seg imidlertid med stretch
distribusjonen i 2017 da systemd-timesyncd
erstattet ntpd
. Årsakene til denne endringen, og noen av de tekniske kompromissene ble diskutert i dette gamle svaret for de som er interessert i slike ting.
Med hensyn til spørsmålet her, kanskje det mest fremtredende punktet i nåværende miljø (post- systemd
) er dette: Hvis du bestemmer deg for å installere ntpd
under din nåværende Raspbian-distribusjon, vet du at systemd-timesyncd
vil » gjøre det rette «! Den vil sjekke om det er andre NTP-demoner, og justere oppførselen deretter; det fungerer bare . Du kan lese alt om det ved å skrive dette på kommandolinjen:
$ systemctl cat systemd-timesyncd
Legg merke til de siste linjene:
# kjør ikke timesyncd hvis vi har en annen NTP-demon installert
ConditionFileIsExecutable =! / usr / sbin / ntpd
ConditionFileIsExecutable =! / usr / sbin / openntpd
ConditionFileIsExecutable =! / Usr / sbin / chronyd
ConditionFileIsExecutable =! / Usr / sbin / VBoxService
Med andre ord: systemd-timesyncd
sjekker for å se om noen av disse alternative tidstjenestene kjører på systemet ditt, og i så fall forsvinner det høflig til dem for å tilby dine tidtakingstjenester.
» tvinger » ntpd
til å oppdatere etter oppstart ?!
Dette var OP «spørsmål. Svaret (i 2021) har ikke «t endret seg: Det burde ikke være nødvendig å gjøre dette på ethvert RPi-system – med mindre noen har endret standardkonfigurasjonen ! Du kan bekrefte dette som følger:
$ 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
Merk deg to ting:
-
System clock synchronized: yes
-
NTP service: active
Item 1. forteller deg at systemklokken din er synkronisert med den standard tidskilden som er, og Item 2. er nesten sant ved at RPi bruker SNTP
som standard i stedet for NTP
( REF ); dvs. dette betyr at RPi har en tidskilde, og den bruker den.
Jeg tror at «alt det som trengs for en opp-til- datosvar for 2021 , bortsett fra dette: les man timedatectl
for å lære mer om dens evner, eller hvis TLDR har denne siden et greit sammendrag.
Kommentarer
- Systemklokke synkronisert: nei
- @Arrow_Raider: Yer ‘ poenget er ???
Svar
Det bør allerede oppdateres. NTPD-serveren skal starte like etter byttefilen og før SSHD.
Sjekk /etc/ntp.conf-filen for å sikre at den er konfigurert.
Den skal oppgi minst én server. Jeg bruker time.nrc.ca for serveren min.
Manuell side for ntp.conf er her: http://linux.die.net/man/5/ntp.conf
Svar
Sønnen min Rasberry Pi ville ikke oppdatere tiden ute av esken og etter å ha prøvd alle forslagene ovenfor kunne jeg få den til å oppdatere manuelt, men ikke automatisk. Til slutt etter å ha sett andre steder også uten hell, fant jeg ut at ntp.conf-fil som fulgte med Rasberry Pi hadde følgende linjer kommentert:
#restrict 127.0.0.1 #restrict ::1
Jeg brukte
sudo nano /etc/ntp.conf
i terminalen for å redigere ntp conf-filen til nå å være:
# Local users may interrogate the ntp server more closely. restrict 127.0.0.1 restrict ::1
Det løste problemet for oss. Den oppdateres med både WiFi og Ethernet-kabelen. Jeg vet ikke om det vil oppdateres med WiFi uten endringen til rc.local som foreslått ovenfor, da jeg allerede hadde gjort den endringen da jeg fant løsningen ovenfor, og jeg har ikke angre den.
Svar
Jeg fant applikasjonen timedatectl
for å hjelpe meg når jeg hadde et lignende problem. Det er installert som standard og «–help» gir en ganske god og enkel oversikt over hvordan du bruker verktøyet.
Merk: sørg for at tidssonen din er riktig innstilt, noe dette verktøyet også kan gjøre.
Svar
Du trenger ikke å bruke ntp for å løse problemet. Det er et skript som leser datoen fra en server og du trenger bare å angi datoen som resultatet av skriptet (Raspberry Pi må være koblet til internett). Så må du kjøre den kommandoen ved oppstart.
Trinn 1: Hent datoen fra en server.
sudo date -s "$(wget -qSO- --max-redirect=0 google.com 2>&1 | grep Date: | cut -d" " -f5-8)Z"
Step2: Kjør kommandoen ved oppstart ved å legge den til filen /etc/rc.local
(Jobbet på Ubuntu 16.04).
sudo gedit /etc/rc.local
KREDITTER:
1- https://askubuntu.com/a/655528/572294
2- https://askubuntu.com/a/1199/572294
Kommentarer
- Du trenger kanskje ikke å bruke
ntp
men du burde. Det ‘ er bedre, raskere, mer nøyaktig og industristandarden. Ikke ‘ t gjør opp dine egne rare ting når det finnes gode standarder takk. - Det hjelper ikke ‘ t mye hvis RasPi kjører 24/7.
Svar
Jeg hadde et lignende problem med en Pi som ikke synkroniserte . Ingen av disse løsningene virket. Det viser seg at nettverksmiljøet mitt blokkerte NTP-porten (123). Løsningen for meg ble
sudo apt install htpdate
hentet fra: https://www.raspberrypi.org/forums/viewtopic.php?t=222236
Som oppdaterer systemklokken gjennom HTTP-samtaler i stedet.
Svar
Dette er tilnærmingen jeg endte med å ta. Mange av disse svarene så ut til å indikere ting som bare ikke sjekket ut da jeg så på mitt Raspian-system:
$ 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"
Jeg hadde ingenting som dukket opp i logger som indikerer at timedatectl
gjorde noe, eller at ntp
synkroniserte i NICs opp-tilstand, eller at NTPD til og med var installert / konfigurert.
Til slutt la jeg bare til dette i /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..."
Og installert ntp
:
$ sudo apt-get install ntp
Hvilket resulterer i dette i /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...
Kommentarer
- Fungerer ikke ‘ t på minimal raspbian:
Failed to start ntp.service: Unit ntp.service not found.
Og ntpd finnes ikke ‘ t heller. Pi får definitivt tid. (Jeg ‘ ser på dette fordi HTTPS-krøllene mine mislykkes uten -k når de kjøres før det) - @StevenLu – Jeg ‘ Oppdater A ‘ er for å inkludere installasjonen av ntp også.
- @StevenLu –
apt-get install ntp
Svar
Jeg bruker følgende på standardbildet for å synkronisere tiden uten å installere flere pakker:
timedatectl set-local-rtc 0 timedatectl set-ntp 1 timedatectl status
Svar
Jeg fant dette et sted på interwebs. Ser ut til å fungere på Buster:
sudo timedatectl set-ntp false && sudo timedatectl set-time "$(date --iso-8601=seconds | cut -d "+" -f1 | tr T " ")" && sudo timedatectl set-ntp true
Jeg er ikke sikker på om mellomkommandoen (set-time
) virkelig er nødvendig.