बूट के बाद दिनांक / समय अपडेट करने के लिए एनटीपीडी को कैसे मजबूर किया जाए?


63

रास्पबेरी पाई में हार्डवेयर घड़ी का अभाव है। मैं हर बूट के तुरंत बाद दिनांक / समय को अपडेट करने के लिए NTPD को कैसे मजबूर कर सकता हूँ?

मैं रास्पियन चला रहा हूं और रास्पबेरी पाई एक ईथरनेट केबल का उपयोग करके जुड़ा हुआ है ।


मेरा पहले से ही बॉक्स से बाहर है। आप कौन से डिस्टो का उपयोग कर रहे हैं?
गेरबन

रास्पियन व्हीजी
एलेसेंड्रो दा रूगना

यह काम करता है, किसी भी तरह
lenik

1
@ थोरब पाई ईथरनेट केबल / dhcp के साथ जुड़ा हुआ है। बस बूट करने के बाद एक वैध तारीख नहीं मिलती है, इसमें
थोड़ा

1
यह कुछ मिनटों के बाद अपने आप हो जाएगा। सुनिश्चित करें कि आपने राष्ट्रीय मानक ब्यूरो में मास्टर घड़ी का उपयोग करने के लिए इसे सेट किया है, time.nist.gov यहां वर्णित है: raspberrypi.stackexchange.com/questions/68811/…
एसडीसोलर

जवाबों:


40

ए करें apt-get install ntpdate

ntpdateईथरनेट इंटरफ़ेस लाने पर चलेगा, और ntp सर्वर से समय सेट करें (देखें /etc/default/ntpdate)।

यदि ntpdचल रहा है, तो ntpdate कुछ भी नहीं करेगा, हालांकि बूटअप से ntpdateपहले चलेगा ntpd- इसलिए जब तक कोई ईथरनेट कनेक्शन न हो तब तक बूटअप पर समय निर्धारित करने के लिए यह काम करना चाहिए।


स्टॉक रस्पबियन यह सब पहले से ही होगा।
बजे

7
@ मुझे मेरा नहीं किया (2013-02-09 wheezy rasbian)
पीट

1
मेरा भी नहीं था, इसे मैन्युअल रूप से करना था।
vaindil

यदि इसे सही ढंग से सेट किया गया है, तो यह स्वचालित रूप से करेगा - हालांकि इसमें कुछ मिनट लग सकते हैं।
एसडीसोलर

Linux raspberrypi 4.14.30-v7+ #1102 SMP Mon Mar 26 16:45:49 BST 2018 armv7l GNU/Linuxयह भी नहीं था
एमिक्स

36

यदि आपकी घड़ी बंद है, तो आपको ntp को सिंक करने के लिए मजबूर करने की आवश्यकता हो सकती है:

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

1
यह त्रुटि देता है "sudo: ntpd: कमांड नहीं मिला"
Pygmalion

1
ntpd को कमांड का उपयोग करने के लिए स्थापित किया जाना चाहिए
thaspius

3
यह है स्थापित किया है, मुझे लगता है कि अज्ञानी नहीं कर रहा हूँ :)
Pygmalion

क्या आप कृपया raspberrypi.stackexchange.com/questions/47542/… पर जा सकते हैं ? मैंने वहां विवरण पोस्ट किया है।
पैगामेलियन

3
यह मेरी समस्या का पूरी तरह से समाधान था, लेकिन मैंने इसे तब तक अस्थायी पाया जब तक मैंने रिबूट नहीं किया। आखिरकार मैंने शटडाउन में एक त्रुटि पकड़ी कि यह hwclock को अपडेट नहीं कर सकता क्योंकि hw घड़ी में भविष्य की तारीख थी (पता नहीं कैसे हुआ)। लेकिन समाधान एक hwclock अद्यतन बल था। इसने नकली हार्डवेयर घड़ी को अपडेट करने के लिए मजबूर किया और फिर बूट पर समय कम से कम वर्तमान के करीब था, इसलिए ntp यह सामान्य रूप से काम कर सकता था।
पिवफ

34

चारों ओर खोज करने के बाद, इस विधि ने मेरे लिए काम किया। जैसा कि आप जानते हैं, रास्पबेरी पाई 3 में डिफ़ॉल्ट रूप से एनटीपी अक्षम है। इसलिए इसे टाइप करने से, NTP समर्थन सक्षम हो जाएगा:

sudo timedatectl set-ntp True

के साथ परिणाम की जाँच करें timedatectl status

चेतावनी के मामले में, आपको sudo timedatectl set-local-rtc trueभी दौड़ना पड़ सकता है ।


धन्यवाद, यह अंत में मेरी मदद करता है, और पिछले उत्तर के बावजूद, उचित तरीका लगता है।
चार्लीस

1
यह सबसे अच्छा जवाब है, इससे मुझे बहुत मदद मिली। आप अपना पासवर्ड टाइप करने से बचें (इसे चलाने वाली लिपियों के लिए उपयोगी)। सेकंड कमांड का उद्देश्य क्या है? set-local-rtc
अरद

12

यदि आप raspi-configरास्पबेरी पाई में टाइम ज़ोन सेट करते हैं , तो इंटरनेट से कनेक्ट होने पर, बूट पर समय स्वचालित रूप से अपडेट हो जाएगा।

  1. sudo raspi-config
  2. चुनते हैं Internationalisation Options
  3. चुनते हैं I2 Change Timezone
  4. अपना भौगोलिक क्षेत्र चुनें
  5. अपने नजदीकी शहर का चयन करें
  6. चुनते हैं Finish
  7. Yesअब रिबूट करने के लिए चुनें

इसने मेरे लिए अच्छा काम किया
एलेक्सा

I2 Change Timezoneविकल्प किसी भी अधिक मौजूद नहीं है
21

12

फोरम पोस्ट देखें पी 3 पर और आधिकारिक डोंगल के साथ टाइम सिंक नहीं होता है

ntpd IP के साथ IP / UDP पैकेट उत्सर्जित करता है, जो 0xc0 पर सेट होता है। तो यह काफी हद तक I (और कई अन्य) के समान है, जब एक वाई-फाई आंतरिक इंटरफ़ेस पर संचालित होता है तो रास्पबेरी Pi3 के साथ होता है।

वर्कअराउंड के रूप में, कमांड जोड़ें

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

फ़ाइल के लिए

/etc/rc.local

बाहर निकलने से पहले 0 लाइन। अगला, रिबूट और जांचें।


1
मेरे पास एक ही मुद्दा था क्योंकि मैंने एक्सपीस के लिए आरपीआई 3 प्राप्त किया था, और आपने मेरी समस्या हल कर दी। महान !!!
jfmessier

8

यह पहले से ही समय को अद्यतन करना चाहिए। NTPD सर्वर को स्वैप फ़ाइल के बाद और SSHD से पहले शुरू करना चाहिए।

सुनिश्चित करें कि यह कॉन्फ़िगर किया गया है अपनी /etc/ntp.conf फ़ाइल की जाँच करें।

इसे कम से कम एक सर्वर को सूचीबद्ध करना चाहिए। मैं अपने सर्वर के लिए time.nrc.ca का उपयोग करता हूं।

Ntp.conf के लिए मैनुअल पेज यहाँ है: http://linux.die.net/man/5/ntp.conf


3

मेरे बेटे का रसबेरी पाई बॉक्स से बाहर का समय अपडेट नहीं करेगा और ऊपर दिए गए सभी सुझावों को आज़माने के बाद मैं इसे मैन्युअल रूप से अपडेट करने के लिए प्राप्त कर सकता हूं लेकिन स्वचालित रूप से नहीं। अंत में सफलता के बिना कहीं और देखने के बाद, मैंने पाया कि ntp.conf फाइल जो रसबेरी पाई के साथ आई थी, उसमें निम्नलिखित पंक्तियां थीं:

#restrict 127.0.0.1
#restrict ::1

मैंनें इस्तेमाल किया

sudo nano /etc/ntp.conf

अब होने वाली ntp conf फ़ाइल को संपादित करने के लिए टर्मिनल में:

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

जिससे हमारे लिए समस्या हल हो गई। यह वाईफाई और ईथरनेट केबल दोनों के साथ अपडेट होता है। मुझे नहीं पता कि यह उपर्युक्त सुझाए गए rc.local में परिवर्तन के बिना वाईफाई के साथ अपडेट होगा, क्योंकि जब तक मुझे ऊपर का समाधान मिला, मैंने पहले ही उस बदलाव को कर दिया था और मैंने इसे पूर्ववत नहीं किया है।


2

timedatectlजब मुझे एक समान समस्या हो रही थी, तो मुझे मेरी मदद करने के लिए आवेदन मिला । यह डिफ़ॉल्ट रूप से स्थापित है और '--help' टूल का उपयोग करने का एक बहुत अच्छा और सरल अवलोकन देता है।

नोट: सुनिश्चित करें कि आपका टाइमज़ोन ठीक से सेट है, जिसे यह उपकरण भी कर सकता है।


1

यह वह तरीका है जिसे मैंने लेना शुरू किया। इन उत्तरों में से कई चीजों को इंगित करने के लिए प्रतीत होता है कि जब मैंने अपने रास्पियन सिस्टम को देखा तो बस बाहर की जाँच नहीं की:

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

मेरे पास कुछ भी नहीं था जो लॉग में दिखाई दे रहा था कि कुछ भी कर रहा था timedatectl, या जो ntpएनआईसी के ऊपर की स्थिति पर सिंक्रनाइज़ हो रहा था, या एनटीपीडी भी स्थापित / कॉन्फ़िगर किया गया था।

अंत में मैंने केवल इसे अपने साथ जोड़ा /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..."

और स्थापित ntp:

$ sudo apt-get install ntp

जो इस में परिणाम /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...

न्यूनतम रास्पियन पर काम नहीं करता है: Failed to start ntp.service: Unit ntp.service not found.और ntpd मौजूद नहीं है। पाई निश्चित रूप से समय हासिल करती है। (मैं इस पर गौर कर रहा हूं क्योंकि मेरे HTTPS कर्ल के बिना असफल हो जाते हैं जब उस से पहले चलाने के लिए)
स्टीवन लू

@StevenLu - मैं ntp की स्थापना को भी शामिल करने के लिए A'er को अद्यतन करूँगा।
स्लम

@StevenLu -apt-get install ntp
slm

1

समस्या को हल करने के लिए आपको ntp का उपयोग करने की आवश्यकता नहीं है। एक स्क्रिप्ट है जो एक सर्वर से तारीख पढ़ती है और आपको उस स्क्रिप्ट का परिणाम होने के लिए केवल तारीख निर्धारित करनी होगी (आपके रास्पबेरी पाई को इंटरनेट से कनेक्ट करने की आवश्यकता है)। फिर, आपको स्टार्टअप पर उस कमांड को चलाने की आवश्यकता है।

Step1: किसी सर्वर से दिनांक प्राप्त करें।

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

Step2: स्टार्टअप पर कमांड को फाइल में जोड़कर चलाएं /etc/rc.local(Ubuntu 16.04 पर काम किया गया)।

sudo gedit /etc/rc.local

क्रेडिट:

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

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


0

मैं अतिरिक्त पैकेज स्थापित किए बिना समय को सिंक करने के लिए डिफ़ॉल्ट छवि पर निम्न का उपयोग करता हूं:

timedatectl set-local-rtc 0
timedatectl set-ntp 1
timedatectl status
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.