NTPD'yi önyüklemeden sonra tarih / saati güncellemeye zorlama?


63

Ahududu Pi bir donanım saati yoksundur. NTPD'yi her açılıştan hemen sonra tarih / saati güncellemeye nasıl zorlarım?

Koşuyorum Raspbian ve Ahududu Pi bir kullanılarak bağlandığında Ethernet kablosu.


Mine zaten bunu kutunun dışında yapıyor. Hangi disto kullanıyorsun?
Gerben

Raspbian Wheezy
Alessandro Da Rugna

olduğu gibi çalışır, nasılsa
lenik

1
@ Trub Pi ethernet kablosu / dhcp ile bağlanmıştır. Sadece önyüklemeden sonra geçerli bir tarih almıyor, bir süre alıyor (10 ila 45 dakika)
Alessandro Da Rugna

1
Birkaç dakika sonra otomatik olarak yapacak. Ulusal Saat Bürosu'ndaki Master Clock'u, time.nist.gov adresinde, burada açıklandığı şekilde kullanmaya ayarladığınızdan emin olun: raspberrypi.stackexchange.com/questions/68811/…
SDsolar

Yanıtlar:


40

Bir yap apt-get install ntpdate.

ntpdateEthernet arayüzü açıldığında çalışır ve saati bir ntp sunucusundan ayarlar (bkz. /etc/default/ntpdate).

Eğer ntpdçalışıyorsa, ntpdate şey yapmaz, ancak ntpdateöncesinde çalışacak ntpdaçılışında - bu yüzden bu kadar uzun bir Ethernet bağlantısı var olarak açılışında zamanını ayarlamak için dışarı çalışmalıdır.


hisse senedi Raspbian zaten tüm bu olacak.
scruss

7
@scruss madeni yapmadı. (2013-02-09 wheezy rasbian)
Pete Kirkham

1
Benimki de yapmadı, elle yapmak zorunda kaldı.
Vaindil,

Doğru kurulursa, otomatik olarak yapılır - birkaç dakika sürebilir, ancak.
SDsolar

Linux raspberrypi 4.14.30-v7+ #1102 SMP Mon Mar 26 16:45:49 BST 2018 armv7l GNU/Linuxo da yoktu.
emix,

36

Saatiniz kapalıysa, ntp'yi aşağıdakileri yaparak senkronize etmeye zorlamanız gerekebilir:

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

1
"Sudo: ntpd: command not found" hatası veriyor
Pygmalion

1
Komutu kullanmak için ntpd kurulu olmalı
thaspius

3
O edilir :) O cahil değilim, yüklü
Pygmalion

Ziyaret misiniz raspberrypi.stackexchange.com/questions/47542/... ? Ayrıntıları oraya gönderdim.
Pygmalion

3
Bu kesinlikle benim sorunumun çözümüydü, ancak yeniden başlatılıncaya kadar geçici olduğunu gördüm. Sonunda kapatmada hwclock'u güncelleyemediği için bir hata yakaladım, çünkü saatin gelecekteki bir tarihi vardı (bunun nasıl olduğu hakkında hiçbir fikrim yok). Ancak çözüm bir hwclock güncelleme kuvveti idi. Bu, güncellemeyi sahte donanım saatine zorladı ve ardından açılışta saat en azından akıma yakındı, böylece ntp normal olarak işini yapabilirdi.
Piwaf

34

Etrafta aradıktan sonra bu yöntem benim için çalıştı. Bildiğiniz gibi, Ahududu Pi 3 NTP'yi varsayılan olarak devre dışı bırakmıştır. Bu nedenle, sadece şunu yazarak, NTP desteği etkinleştirilecektir:

sudo timedatectl set-ntp True

Sonucunu kontrol et timedatectl status

Uyarı durumunda da koşmanız gerekebilir sudo timedatectl set-local-rtc true.


Teşekkürler, bu nihayet bana yardımcı oldu ve önceki cevaplara rağmen doğru yolu gibi görünüyor.
CharlieS

1
Bu en iyi cevap, bana çok yardımcı oldu. Parolanızı yazmaktan kaçınmak için 'sudo' komutunu kullanabilirsiniz (onu çalıştıran komut dosyaları için yararlıdır). Seconds komutunun amacı nedir? set-local-rtc
Arad

12

raspi-configAhududu Pi'deki Saat Dilimi ayarını yaparsanız , internete bağlı olmanız durumunda açılıştaki saati otomatik olarak güncelleyeceksiniz.

  1. sudo raspi-config
  2. seçmek Internationalisation Options
  3. seçmek I2 Change Timezone
  4. Coğrafi Bölgenizi seçin
  5. En yakın şehri seç
  6. seçmek Finish
  7. YesŞimdi yeniden başlatmak için seçin

Bu benim için iyi çalıştı
AlexG

I2 Change Timezoneseçenek artık mevcut değil
mr:

12

Forum gönderisine bakın Time Pi 3'te ve resmi dongle ile eşitlenmiyor .

ntpd , ToS alanı 0xc0 olarak ayarlanmış durumdayken IP / UDP paketleri yayar. Bu, bir Wi-Fi dahili arayüzü üzerinden kullanıldığında Raspberry Pi3 ile olan diğer sorunlara (ve diğerleri) oldukça benzer.

Çözüm olarak, komutu ekleyin

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

dosyaya

/etc/rc.local

Çıkış 0 satırından önce. Ardından, yeniden başlatın ve kontrol edin.


1
XMas için sahip olduğum RPi3'ü kurduğumda da aynı sorunu yaşadım ve sen benim sorunumu çözdün. Harika !!!
jfmessier

8

Zaten zamanı güncelliyor olmalı. NTPD sunucusu, takas dosyasının hemen ardından ve SSHD'den önce başlamalıdır.

Yapılandırıldığından emin olmak için /etc/ntp.conf dosyanızı kontrol edin.

En az bir sunucuyu listelemelidir. Sunucum için time.nrc.ca kullanıyorum.

Ntp.conf için kılavuz sayfası burada: http://linux.die.net/man/5/ntp.conf


3

Oğlumun Rasberry Pi, kutunun dışında kalan zamanı güncellemeyecekti ve yukarıdaki tüm önerileri denedikten sonra, manuel olarak güncellemesini sağlayabilirim ancak otomatik olarak değil. Sonunda, başka bir yere de başarı olmadan baktıktan sonra, Rasberry Pi ile birlikte gelen ntp.conf dosyasının aşağıdaki satırları yorumladığını gördüm:

#restrict 127.0.0.1
#restrict ::1

kullandım

sudo nano /etc/ntp.conf

ntp conf dosyasını düzenlemek için terminalde şu şekilde olun:

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

Bu bizim için problemi çözdü. Hem WiFi hem de ethernet kablosu ile güncellenir. Yukarıda önerilen çözümü bulduğum gibi rc.local'da değişiklik yapmadan WiFi ile güncelleme yapıp yapamayacağımı bilmiyorum, yukarıdaki çözümü bulduğumda bu değişikliği yaptım ve geri almadım.


2

timedatectlBenzer bir sorun yaşarken bana yardımcı olacak uygulamayı buldum . Varsayılan olarak yüklenir ve '--help', aracın nasıl kullanılacağına ilişkin oldukça iyi ve basit bir genel bakış sunar.

Not: Saat diliminizin bu aracın da yapabileceği şekilde ayarlandığından emin olun.


1

Yaklaştığım yaklaşım bu. Bu yanıtların çoğu, Raspian sistemime baktığımda henüz kontrol etmeyen şeyleri gösteriyor gibiydi:

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

Ben belirten günlüklerinde göründü ilgisi yoktu timedatectloldu yapıyor şey, ya da bu ntphatta yapılandırılmış / yüklendiği NIC durumuna kadar veya bu Ntpd üzerinde senkronize ediyor.

Sonunda sadece şunu ekledim /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..."

Ve yüklü ntp:

$ sudo apt-get install ntp

Bunun içinde hangi sonuçlar var /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 4.2.8p10@1.3728-o 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 4.2.8p10@1.3728-o 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...

Minimal raspbian üzerinde çalışmaz: Failed to start ntp.service: Unit ntp.service not found.Ve ntpd de yoktur. Pi sonunda zaman kazanır. (Buna bakıyorum çünkü HTTPS buklelerim bundan önce çalıştırıldığında -k olmadan başarısız oluyor)
Steven Lu

@StevenLu - A'er'ı ntp kurulumunu da içerecek şekilde güncelleyeceğim.
slm

@StevenLu -apt-get install ntp
slm

1

Sorunu çözmek için ntp kullanmanıza gerek yoktur. Bir sunucudan tarihi okuyan bir komut dosyası vardır ve tarihi yalnızca o komut dosyasının sonucu olarak ayarlamanız gerekir (Ahududu Pi'nizin internete bağlı olması gerekir). Ardından, başlangıçta bu komutu çalıştırmanız gerekir.

Adım 1: Tarihi bir sunucudan alın.

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

Adım 2: Komutu başlangıçta dosyaya ekleyerek çalıştırın /etc/rc.local(Ubuntu 16.04'de çalıştı).

sudo gedit /etc/rc.local

KREDİ:

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

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


0

Ek paketler yüklemeden zamanı eşitlemek için varsayılan resim üzerinde aşağıdakileri kullanırım:

timedatectl set-local-rtc 0
timedatectl set-ntp 1
timedatectl status
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.