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.

  1. sudo raspi-config
  2. Vælg Internationalisation Options
  3. Vælg I2 Change Timezone
  4. Vælg dit geografiske område
  5. Vælg din nærmeste by
  6. Vælg Finish
  7. 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:

  1. System clock synchronized: yes
  2. 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.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *