Raspberry Pi mangler et hardwareur. Hvordan tvinger jeg NTPD til at opdatere dato / tid umiddelbart efter hver opstart?
Jeg kører Raspbian , og Raspberry Pi er forbundet med et Ethernet -kabel.
Kommentarer
- Mine gør det allerede ud af Hvilken disto bruger du?
- Raspbian Wheezy
- @Thorb Pi er forbundet med ethernet-kabel / dhcp. Det får simpelthen ikke en gyldig dato efter opstart, det tager et stykke tid (10 til 45 minutter)
- Det gør det automatisk efter et par minutter. Vær sikker på at du har indstillet det til at bruge Master Clock på National Bureau of Standards, time.nist.gov som beskrevet her: raspberrypi.stackexchange.com/questions/68811/…
- Ser ud til at ingen man har endnu besvaret dette spørgsmål tilfredsstillende – dvs. hvordan man synkroniserer tid via NTP efter en boot (dvs. uden genstart).
Svar
Efter søger rundt, denne metode fungerede for mig. Som du ved, har Raspberry Pi 3 NTP deaktiveret som standard. Så ved bare at skrive dette, vil NTP-understøttelsen blive aktiveret:
sudo timedatectl set-ntp True
Kontroller resultatet med timedatectl status
I tilfælde af advarsel skal du muligvis også køre sudo timedatectl set-local-rtc true
.
Kommentarer
- Tak, dette hjalp mig endelig ud og synes at være den rigtige måde på trods af tidligere svar.
- Det er det bedste svar, hjalp mig meget. Du kan bruge ‘ sudo ‘ for at undgå at skrive din adgangskode (nyttigt til scripts, der kører den). Hvad er formålet med sekunder-kommandoen? set-local-rtc
Svar
Lav en apt-get install ntpdate
.
ntpdate
kører, når et Ethernet-interface åbnes, og indstiller tiden fra en ntp-server (se /etc/default/ntpdate
).
Hvis ntpd
kører, vil ntpdate ikke gøre noget, men ntpdate
kører før ntpd
ved opstart – så dette skulle fungere for at indstille tiden ved opstart, så længe der er en Ethernet-forbindelse.
Kommentarer
- lager Raspbian vil allerede have alt dette.
- @scruss mine didn ‘ t. (2013-02-09 wheezy rasbian)
- Min gjorde det heller ikke, måtte gøre det manuelt.
- Hvis det er indstillet korrekt, gør det det automatisk – selvom det kan tage et par minutter.
-
Linux raspberrypi 4.14.30-v7+ #1102 SMP Mon Mar 26 16:45:49 BST 2018 armv7l GNU/Linux
havde det ikke ‘ t også.
Svar
Hvis dit ur er langt væk, skal du muligvis tvinge ntp til at synkronisere ved at gøre:
sudo /etc/init.d/ntp stop sudo ntpd -q -g sudo /etc/init.d/ntp start
Kommentarer
- Det returnerer fejl ” sudo: ntpd: kommandoen blev ikke fundet ”
- ntpd skal være installeret for at bruge kommandoen
- Den er installeret, jeg er ikke så uvidende 🙂
- Kan du venligst besøge raspberrypi.stackexchange.com/questions/47542/… ? Jeg har sendt detaljer der.
- Dette var absolut løsningen på mit problem, men jeg fandt det midlertidigt, indtil jeg genstartede. Til sidst fik jeg en fejl i nedlukningen, at den ikke kunne ‘ t opdaterede hwclocken, fordi hw-uret havde en fremtidig dato (ingen idé om, hvordan det skete). Men løsningen var en hwclock opdateringskraft. Det tvang opdateringen til det falske hardwareur, og klokken var derefter i det mindste tæt på den aktuelle, så ntp kunne gøre det ‘ s job normalt.
Svar
Hvis du indstiller tidszonen i raspi-config
, opdaterer Raspberry Pi automatisk tid ved opstart, hvis der er forbindelse til internettet.
-
sudo raspi-config
- Vælg
Internationalisation Options
- Vælg
I2 Change Timezone
- Vælg dit geografiske område
- Vælg din nærmeste by
- Vælg
Finish
- Vælg
Yes
for at genstarte nu
Kommentarer
- dette fungerede godt for mig
-
I2 Change Timezone
-indstillingen fungerer ikke ‘ t findes mere - Den findes, i det mindste i Raspbian Buster.
- ” Internationaliseringsmuligheder ” er kaldes nu ” Lokaliseringsmuligheder ”
- ” nærmeste by ” er ikke den rigtige måde. du skal vælge den by, hvor din tidszone hører hjemme, som kan være den nærmeste eller ej …
Svar
Se forumindlæg Tid synkroniseres ikke på Pi 3 og med officiel dongle .
ntpd udsender IP / UDP-pakker med ToS-felt indstillet til 0xc0. Så det svarer meget til det andet problem, jeg (og mange andre) har med Raspberry Pi3, når det betjenes via en intern Wi-Fi-grænseflade.
Som en løsning skal du tilføje 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 exit 0-linjen. Genstart og tjek derefter.
Kommentarer
- Jeg havde det samme problem som jeg installerede RPi3, jeg fik til XMas, og du løste mit problem. Fantastisk !!!
Svar
Dette spørgsmål er tilsyneladende ved at være ” genbrugt ” af en eller anden grund, og det synes derfor hensigtsmæssigt også at genbruge nogle gamle svar 🙂
Året er nu 2021 …
Dette spørgsmål blev stillet i 2013. ntpd
var tidssoftware inkluderet i Raspbian distribution på det tidspunkt (wheezy
) . Det ændrede sig imidlertid med stretch
distributionen i 2017, da systemd-timesyncd
erstattede ntpd
. Årsagerne til denne ændring og nogle af de tekniske afvejninger blev diskuteret i dette gamle svar for dem, der er interesserede i sådanne ting.
Med hensyn til spørgsmålet her, måske det mest fremtrædende punkt i nuværende miljø (post- systemd
) er dette: Hvis du beslutter at installere ntpd
under din nuværende Raspbian-distribution, skal du vide, at systemd-timesyncd
vil ” gøre det rigtige “! Den vil kontrollere for tilstedeværelsen af andre NTP-dæmoner og justere dens adfærd i overensstemmelse hermed; det virker bare . Du kan læse alt om det ved at indtaste dette på kommandolinjen:
$ systemctl cat systemd-timesyncd
Bemærk de sidste par linjer:
# kør ikke timesyncd, hvis vi har en anden NTP-dæmon installeret
ConditionFileIsExecutable =! / usr / sbin / ntpd
ConditionFileIsExecutable =! / usr / sbin / openntpd
ConditionFileIsExecutable =! / Usr / sbin / chronyd
ConditionFileIsExecutable =! / Usr / sbin / VBoxService
Med andre ord: systemd-timesyncd
kontrollerer for at se, om nogen af disse alternative tidstjenester kører på dit system, og i bekræftende fald afviser den høfligt over for dem for at levere dine tidtagningstjenester.
” tvinger ” ntpd
til at opdatere efter opstart ?!
Dette var OP spørgsmål. Svaret (i 2021) har ikke ændret sig: Det skulle ikke være nødvendigt at gøre dette på ethvert RPi-system – medmindre nogen har ændret standardkonfigurationen ! Du kan bekræfte dette på følgende måde:
$ 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
Bemærk to ting:
-
System clock synchronized: yes
-
NTP service: active
Punkt 1. fortæller dig, at dit systemur er synkroniseret med den standardtidskilde, som er standard, og punkt 2. er næsten sand ved at RPi som standard bruger SNTP
protokollen i stedet for NTP
( REF ); dvs. dette betyder, at RPi har en tidskilde, og den bruger den.
Jeg tror, at “s alt, hvad der er nødvendigt for en up-to- dato svar til 2021 , bortset fra dette: læs man timedatectl
for at lære mere om dets muligheder, eller hvis TLDR har denne side en anstændig oversigt.
Kommentarer
- Systemur synkroniseret: nej
- @Arrow_Raider: Yer ‘ punkt er ???
Svar
Det skal allerede opdateres. NTPD-serveren skal starte lige efter swap-filen og før SSHD.
Kontroller din /etc/ntp.conf-fil for at sikre, at den er konfigureret.
Den skal indeholde mindst en server. Jeg bruger time.nrc.ca til min server.
Manuel side for ntp.conf er her: http://linux.die.net/man/5/ntp.conf
Svar
Min søns Rasberry Pi opdaterede ikke tiden ud af kassen og efter at have prøvet alle ovenstående forslag kunne jeg få det til at opdatere manuelt, men ikke automatisk. Endelig efter at have kigget andre steder også uden succes, fandt jeg, at ntp.conf-fil, der fulgte med Rasberry Pi, havde følgende linjer kommenteret:
#restrict 127.0.0.1 #restrict ::1
Jeg brugte
sudo nano /etc/ntp.conf
i terminalen for at redigere ntp conf-filen til nu at være:
# Local users may interrogate the ntp server more closely. restrict 127.0.0.1 restrict ::1
Det løste problemet for os. Den opdateres med både WiFi og Ethernet-kablet. Jeg ved ikke, om det ville opdatere med WiFi uden ændringen til rc.local foreslået ovenfor, da jeg på det tidspunkt, hvor jeg fandt løsningen ovenfor, allerede havde foretaget den ændring, og jeg har ikke fortrydet den.
Svar
Jeg fandt applikationen timedatectl
til at hjælpe mig, da jeg havde et lignende problem. Det “s installeret som standard og “–help” giver et ret godt og simpelt overblik over, hvordan du bruger værktøjet.
Bemærk: Sørg for, at din tidszone er indstillet korrekt, hvilket dette værktøj også kan gøre.
Svar
Du behøver ikke bruge ntp til at løse problemet. Der er et script, der læser datoen fra en server og du behøver kun at indstille datoen til at være resultatet af dette script (din Raspberry Pi skal have forbindelse til internettet). Derefter skal du køre kommandoen ved opstart.
Trin 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"
Trin2: Kør kommandoen ved opstart ved at føje den til filen /etc/rc.local
(Arbejdet 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 behøver muligvis ikke bruge
ntp
men du burde. Det ‘ er bedre, hurtigere, mere præcis og industristandarden. Don ‘ t udgør dine egne underlige ting, når der findes gode standarder tak. - Det hjælper ikke ‘ t meget hvis din RasPi kører 24/7.
Svar
Jeg havde et lignende problem med en Pi, der ikke synkroniserede . Ingen af disse løsninger fungerede. Det viser sig, at mit netværksmiljø blokerede NTP-porten (123). Løsningen for mig blev taget
sudo apt install htpdate
fra: https://www.raspberrypi.org/forums/viewtopic.php?t=222236
Hvilket opdaterer systemuret gennem HTTP-opkald i stedet.
Svar
Dette er den tilgang, jeg endte med at tage. Mange af disse svar syntes at indikere ting, der bare ikke tjekkede ud, da jeg kiggede på mit 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 havde intet, der dukkede op i logfiler, der angav at timedatectl
gjorde noget, eller at ntp
synkroniserede i NICs up-tilstand, eller at NTPD endda var installeret / konfigureret.
I sidste ende tilføjede jeg bare dette til min /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 installeret 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 findes ikke ‘ heller ikke. Pi vinder i sidste ende tid. (Jeg ‘ ser på dette, fordi mine HTTPS-krøller fejler uden -k, når de køres før det) - @StevenLu – I ‘ ll opdater A ‘ er, så den også inkluderer installationen af ntp.
- @StevenLu –
apt-get install ntp
Svar
Jeg bruger følgende på standardbilledet til at synkronisere tiden uden at installere yderligere pakker:
timedatectl set-local-rtc 0 timedatectl set-ntp 1 timedatectl status
Svar
Jeg fandt dette et eller andet sted på interwebs. Ser ud til at arbejde 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 mellemkommandoen (set-time
) virkelig er nødvendigt.