मैं कैसे बता सकता हूं कि मेरा मैक घड़ी को ठीक से अपडेट कर रहा है या नहीं।


45

मैं यह जानना चाहूंगा कि जब मैं दिनांक और समय वरीयता में स्वचालित समय सिंक सक्षम करता हूं, तो घड़ी को समायोजित रखने के मामले में ओएस एक्स के लिए डिफ़ॉल्ट सेटिंग्स क्या हैं।

मुझे पता है कि ntpdमावेरिक्स (10.9) और योसेमाइट (10.10) पर आदरणीय डेमन अब समय को समायोजित करने के लिए ज़िम्मेदार नहीं है और इसके बजाय एक नया कार्यक्रम pacemakerपेश किया गया है - तो मैं कैसे जान सकता हूं कि चीजें काम कर रही हैं या समय रखने के लिए समायोजन की आवश्यकता है?

जवाबों:


71

10.14 मोजावे

Mojave अभी भी उपयोग करता है timed, लेकिन ntpdateऔर सहायकों ntpqको हटा दिया जाता है। अपने सिस्टम के समय की जांच और अद्यतन करने के लिए, आप sntpसीधे कॉल कर सकते हैं।

$ sudo sntp -sS pool.ntp.org
Password:
sntp 4.2.8p10@1.3728-o Tue Mar 21 14:36:42 UTC 2017 (136.200.1~2533)
2018-09-29 19:42:41.448103 (-0200) +1087.742403 +/- 725.183462 pool.ntp.org 188.68.36.203 s2 no-leap

बॉक्स से बाहर, एक ट्रैकिंग फ़ाइल गायब है, इसलिए यदि आपको समय जाँचते समय यह हानिरहित त्रुटि मिलती है:

kod_init_kod_db(): Cannot open KoD db file /var/db/ntp-kod: No such file or directory

या तो त्रुटि को अनदेखा करें या उस खाली फ़ाइल को बनाने का प्रयास करें:

sudo touch /var/db/ntp-kod
sudo chmod 666 /var/db/ntp-kod

10.13 हाई सिएरा

उच्च सिएरा का उपयोग करता है timedसे, /usr/libexec/timed, प्रणाली उपयोगकर्ता द्वारा चलाए _timed

समय एनटीपी जैसी प्रौद्योगिकियों के माध्यम से घड़ी को संदर्भ घड़ियों के साथ सिंक्रनाइज़ करके सिस्टम घड़ी की सटीकता को बनाए रखता है। इनपुट को समय के भीतर विलय कर दिया जाता है, जहाँ यह अनिश्चित समय की नौकरियों को सुविधाजनक बनाने के लिए अनिश्चितता की गणना करता है। समय पर बिजली / बैटरी की स्थिति से भी अवगत कराया जाता है।

लॉन्चडेमॉन द्वारा समय का प्रबंधन किया जाता है /System/Library/LaunchDaemons/com.apple.timed.plist। समय पर रन ...

  • जब डेमॉन को बूट पर लोड किया जाता है (रनअटलड: सच)
  • हर 3600 सेकंड (StartInterval: 3600)
  • जब हवाई जहाज मोड अक्षम हो जाता है (com.apple.systemconfiguration हवाई जहाज मोड परिवर्तित हो जाता है: com.apple.radios.plist AirplaneMode झूठी, जो iOS से चलाया जाता है)

आप /var/db/timed/com.apple.timed.plistTMMEError कुंजी और TMScaleFactorError कुंजी में TMLastSystemTime डिक्शनरी के तहत, अपनी घड़ी को 'ऑफ' कैसे देख सकते हैं ।

$ sudo defaults read /var/db/timed/com.apple.timed TMLastSystemTime
{
    TMCurrentTime = "537303485.281592";
    TMReliability = 1;
    TMRtcTime = "351422.381868388";
    TMScaleFactor = "0.9999958233107684";
    TMScaleFactorError = "3.468751755688052e-05";
    TMSource = TMTimeSynthesizer;
    TMTimeError = "0.6127951619022057";
}

उल्लेख plist के Xcode स्क्रीनशॉट

समय निर्धारित सर्वर का उपयोग करता है /etc/ntp.conf, जो डिफ़ॉल्ट रूप से होता है

server time.apple.com

समय भी TMTimeSynthesizer का उपयोग करता है, कुछ जो iOS पर CoreTime का उपयोग घड़ी को अपडेट करने के लिए करता है, लेकिन मैं macOS पर इसके इतिहास से अनजान हूँ:

समय पर स्रोत

मैन पेज में बताए अनुसार, समयबद्ध बाइनरी को स्वयं न चलाएं:

समय कोई तर्क नहीं लेता है, और उपयोगकर्ताओं को इसे मैन्युअल रूप से लॉन्च नहीं करना चाहिए।

10.13 के बाद ntpd में Apple डेवलपर फ़ोरम उपयोगकर्ता के लिए granada29 के अनुसार , समय सारिणी और कालक्रम में , निम्नलिखित कार्य करता है:

समय सारिणी एक सामान्य sntp क्लाइंट प्रतीत होती है - अर्थात यह समय-समय पर (15 मिनट) NTP को प्रदूषित करता है और sytem घड़ी को सेट करने के लिए setimeofday () सिस्टम कॉल का उपयोग करता है। मैं मानता हूं कि घड़ी को पीछे की ओर ले जाने से बचने के लिए कुछ चतुराई है लेकिन यह बताने का कोई तरीका नहीं है।

10.11 एल कैपिटन से 10.12 सिएरा

pacemakerMacOS में समय के प्रबंधन के लिए डेमन जिम्मेदार है। यह adjtimeसामग्री के अनुसार घड़ी को समायोजित करने के लिए उपयोग करता है /var/db/ntp.drift

आप देख सकते हैं कि आपकी सामग्री किस तरह से 'बंद' है ntp.drift- उदाहरण के लिए, मेरी फ़ाइल में निम्नलिखित शामिल हैं:

-23.640

इसका मतलब यह है कि घड़ी -23.64 पीपीएम उस समय से दूर है जब यह होना चाहिए। इस संख्या की इकाइयाँ PPM या पार्ट्स प्रति मिलियन है। 1 पीपीएम 1 माइक्रोसेकंड / सेकंड, या 3.6 सेमी / घंटा है।

आप विकल्प के pacemakerसाथ चलकर घड़ी को अधिक बार अपडेट कर सकते हैं -a, सेकंड में एक समय प्रदान करते हुए समय की गति के बीच प्रतीक्षा कर सकते हैं:

/usr/libexec/pacemaker -a 10

पेसमेकर के लिए OS X द्वारा उपयोग किए जा रहे मापदंडों को देखने के लिए, खोलें /System/Library/LaunchDaemons/com.apple.pacemaker.plist

{
    KeepAlive = { PathState = { "/private/var/db/ntp.drift" = :true; }; };
    Label = "com.apple.pacemaker";
    ProgramArguments = ( "/usr/libexec/pacemaker", "-b", "-e", "0.0001", "-a", "10" );
}

अपनी वर्तमान सेटिंग खोजने के लिए, -iविकल्प के साथ दौड़ें :

/usr/libexec/pacemaker -i
Jan 19 18:20:08 g pacemaker[12544] <Info>: --- settings for external power ---
Jan 19 18:20:08 g pacemaker[12544] <Info>: interval = 1 seconds, tolerance = 0.000000, drift = -23.640000
Jan 19 18:20:08 g pacemaker[12544] <Info>: --- settings for internal power ---
Jan 19 18:20:08 g pacemaker[12544] <Info>: interval = 1 seconds, tolerance = 0.000024, drift = -23.640000

आप -vविकल्प के साथ दौड़कर लॉग दिखा सकते हैं :

sudo /usr/libexec/pacemaker -v
Password:
Jan 19 18:23:17 g pacemaker[13202] <Info>: power status check: using external power
Jan 19 18:23:17 g pacemaker[13202] <Info>: created file monitor for /var/db/ntp.drift
Jan 19 18:23:17 g pacemaker[13202] <Info>: interval = 1 seconds, tolerance = 0.000000, drift = -23.640000
Jan 19 18:23:19 g pacemaker[13202] <Debug>: drift -23.640000 residue 0.000000 delta -23
Jan 19 18:23:20 g pacemaker[13202] <Debug>: drift -23.640000 residue -0.640000 delta -24
Jan 19 18:23:21 g pacemaker[13202] <Debug>: drift -23.640000 residue -0.280000 delta -23
Jan 19 18:23:22 g pacemaker[13202] <Debug>: drift -23.640000 residue -0.920000 delta -24
Jan 19 18:23:23 g pacemaker[13202] <Debug>: drift -23.640000 residue -0.560000 delta -24
Jan 19 18:23:24 g pacemaker[13202] <Debug>: drift -23.640000 residue -0.200000 delta -23
⌃C%

मेरा Mojave सिस्टम स्वचालित रूप से सिंक नहीं करेगा, लेकिन sntpकाम किया। मुझे आश्चर्य है कि अगर /var/db/ntp-kodत्रुटि स्वचालित सिंक के साथ समस्या पैदा कर रही है - इसे बनाने और कुछ महीनों में वापस जांचने की कोशिश करेंगे। =)
केन विलियम्स

5

यह उत्तर केवल 10.12 सिएरा और निम्न पर लागू होता है।

विवरण संदर्भ के लिए सहायक हो सकता है, लेकिन एक और उत्तर नए macOS टाइमकीपिंग विवरण को उत्कृष्ट रूप से कवर करता है।


पहला चरण यह देखना है कि आपका समय निर्धारित है या नहीं।

Mac:~ me$ ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
*time.apple.com  17.168.198.149   2 u 1046  512   37   58.475    9.477   3.674

मान लें कि आपके पास देरी / ऑफसेट / घबराना मान 100 से कम है (देरी कम समय-सटीक-महत्वपूर्ण प्रणालियों के लिए सामान्य परिस्थितियों में 1000 से कम हो सकती है), टर्मिनल में चलाने के लिए अगला आदेश ntpqआपके ntpqऔर सिस्टम वरीयता से समय के बाद है। आप यह देखने के लिए अन्य समय सर्वरों का भी परीक्षण कर सकते हैं कि क्या उनके पास कम देरी है क्योंकि टाइमकीपिंग सिस्टम को समय सर्वर से एक करीबी, तेज प्रतिक्रिया पसंद है जब मिलीसेकंड अंतर के लिए समय को सही करते हुए और गणना की जाती है कि वर्तमान हार्डवेयर घड़ी मानक समय से कैसे बह रही है। ।

Mac:~ me$ ntpdate -q time.apple.com
server 17.151.16.12, stratum 2, offset 0.081698, delay 0.11237
server 17.151.16.20, stratum 2, offset 0.081365, delay 0.11310
server 17.151.16.21, stratum 2, offset 0.082754, delay 0.11440
server 17.151.16.22, stratum 2, offset 0.081750, delay 0.11264
server 17.151.16.23, stratum 2, offset 0.082691, delay 0.11415
server 17.151.16.38, stratum 2, offset 0.082077, delay 0.11458
server 17.171.4.13, stratum 2, offset 0.084822, delay 0.08054
server 17.171.4.14, stratum 2, offset 0.083749, delay 0.08142
server 17.171.4.15, stratum 2, offset 0.086343, delay 0.07605
server 17.171.4.33, stratum 2, offset 0.086526, delay 0.07690
server 17.171.4.34, stratum 2, offset 0.084500, delay 0.07997
server 17.171.4.35, stratum 2, offset 0.083987, delay 0.08278
server 17.171.4.36, stratum 2, offset 0.084382, delay 0.08028
server 17.171.4.37, stratum 2, offset 0.085948, delay 0.07831
server 17.151.16.14, stratum 2, offset 0.082043, delay 0.11270
19 Jan 12:09:32 ntpdate[4592]: adjust time server 17.171.4.15 offset 0.086343 sec
Mac:~ me$ ntpq
ntpq> assoc

ind assid status  conf reach auth condition  last_event cnt
===========================================================
  1 57788  9014   yes   yes  none    reject   reachable  1
ntpq> peer
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
 time.apple.com  17.168.198.148   2 u  729  512    1  133.274   51.653 371.362
ntpq> q

आपके पेसमेकर प्रोग्राम की जांच करने के लिए अगली बात है:

Mac:~ me$ ps -ef|grep [p]acemaker
0    76     1   0 Fri08AM ??         0:03.64 /usr/libexec/pacemaker -b -e 0.0001 -a 10

इससे पता चलता है कि बैटरी पर, समायोजित अंतराल हर 10 सेकंड में एक बार से अधिक नहीं है और अगर घड़ी की त्रुटि 0.1 मिलीसेकंड से कम है, तो भी कम समायोजित करना।

यदि आप पाते हैं कि आपकी ऑफसेट सेकंड या अधिक है, तो आप अपने द्वारा उपयोग किए जाने वाले टाइमवेर्स को बदलना चाहते हैं या शायद अधिक ऊर्जा और सीपीयू का उपयोग करने के लिए पेसमेकर पर उपयोग किए जाने वाले मानों को बदल सकते हैं, लेकिन सेटिंग्स के बदले में सच्चे समय के करीब एक घड़ी है Apple। 10.9 के साथ भेज दिया।


4

यदि आप http://time.gov पर जाते हैं तो आप आधिकारिक समय (दूसरे तक) देख सकते हैं और यह सत्यापित करने के लिए उपयोग कर सकते हैं कि आपका सिस्टम समय सही है या नहीं। ध्यान दें कि यह आधिकारिक NIST समय है, और सिस्टम समय से स्वतंत्र रूप से ब्राउज़र में अपना सिंक्रनाइज़ेशन करता है (उदाहरण के लिए, आप यहां देख सकते हैं कि time.gov लीप सेकंड को हैंडल करता है, जबकि OS X स्पष्ट रूप से नहीं)।


क्या आप इस बात को विस्तृत कर सकते हैं कि यह "घड़ी को संतुलित रखने" के लिए मेरी पसंद को कैसे प्रभावित करता है "मुझे लगता है कि यह उतना ही अच्छा उत्तर है जितना" अपने Apple वॉच को चेक करें - यह दूसरे तक सटीक है। "
bmike

1
सवाल यह है कि "अगर मेरा मैक मेरी घड़ी को ठीक से अपडेट रख रहा है तो मैं कैसे बता सकता हूं?" यदि "आधिकारिक समय पर देखो" आपके प्रश्न का उत्तर नहीं देता है, तो आपको शायद इसे फिर से लिखना चाहिए।
asmeurer

Time.gov के बारे में, यह आधिकारिक NIST समय है, और जब आप पृष्ठ पर जाते हैं, तो ब्राउज़र में अपना खुद का सिंक्रनाइज़ेशन करता है। यह कहना कि "एक Apple वॉच को चेक करें" वही होगा जो आपको बताएगा कि आपका OS X सिस्टम क्लॉक पहले से ही डिफॉल्ट रूप से सिंक्रोनाइज़ है (जो सच है, लेकिन वास्तव में सवाल का जवाब नहीं देता)। यह भी Apple वॉच की तुलना में बहुत सस्ता है, और Apple वॉच में डिजिटल दूसरा डिस्प्ले AFAIK नहीं है।
asmeurer

मेरा तर्क यह था कि समय को सटीक और सटीक रखने के लिए घड़ी में अधिक इंजीनियरिंग है। मैक घड़ियां सटीक रूप से और सटीक के नीचे कुख्यात हैं। वही किसी भी कंप्यूटर के लिए जाता है जिससे मैं अवगत हूं - सटीकता, टाइमकीपिंग के लिए कठिन है। वेब सुविधाओं की विस्तृत व्याख्या के लिए +1। (यहां तक कि अगर यह जवाब के शरीर में नहीं है)
bmike

4

उच्च सिएरा के साथ ntpd सिस्टम डेमॉन को शुरू करने के लिए समयबद्ध सिस्टम डेमन से प्रतिस्थापित किया गया था जो इनवॉइस / यूएसआर / लीबेसेक / टाइमेड करता है।

विवरण प्राप्त करने के लिए मैंने जो सबसे अच्छा निष्पादन किया है, वह systemsetupअपने विभिन्न झंडों के साथ (रूट के रूप में चलाएँ) है:

[-getusingnetworktime] [-setusingnetworktime on | off]
[-getnetworktimeserver] [-setnetworktimeserver timeserver]

परिणामी आउटपुट बहुत कम क्रिया (= उबाऊ) है। जैसे कोई ∂T / बहाव विवरण नहीं।

जाहिरा तौर पर समय पर केवल एक ntp- सर्वर (पहले सूचीबद्ध - वायरशर्क / लिटिलसिंच के साथ जाँच की जाती है) का उपयोग करता है, भले ही कई सिस्टम वरीयताओं / ntp.conf फ़ाइल में दर्ज किए गए हों।

आगे पढ़ना (बहुत तकनीकी नहीं): क्या किसी को समय मिला है? कैसे हाई सिएरा ने समय सिंक्रनाइज़ेशन को बदल दिया है


एक विरासत ntpd डेमन अभी भी मौजूद है लेकिन उतराई में है। हालांकि इसे टर्मिनल.एप्प में दर्ज करके लोड किया जा सकता है:

sudo launchctl load [-F|-w] /System/Library/LaunchDaemons/org.ntp.ntpd-legacy.plist

SIP अक्षम मोड में। दर्ज ntpq -pकरने पर फिर काम होगा।

SIP सक्षम मोड में डेमॉन को लोड करने के लिए फ़ाइल को / Library / LaunchDaemons /: पर कॉपी करें।

sudo cp /System/Library/LaunchDaemons/org.ntp.ntpd-legacy.plist /Library/LaunchDaemons/org.ntp.ntpd.plist

नैनो या किसी अन्य संपादक से plist के लेबल को org.ntp.ntpd-legacy से org.ntp.ntpd पर संशोधित करें:

sudo nano /Library/LaunchDaemons/org.ntp.ntpd.plist

डेमॉन लोड करें:

sudo launchctl load -w /Library/LaunchDaemons/org.ntp.ntpd.plist

यदि मुझे डिफ़ॉल्ट हाई सिएरा डेमन के साथ समय विवरण प्राप्त करने के लिए बेहतर निष्पादन मिलता है तो उत्तर अपडेट किया जाएगा।


1
पुराने ntpd को सक्षम करने वाला टिप हाई सिएरा का उपयोग करते समय एक अच्छा विकल्प नहीं है, क्योंकि /System/Library/LaunchDaemons/org.ntp.ntpd-legacy.plist SIP द्वारा अक्षम और "सुरक्षित" है। इसलिए यदि आप इसे लोड नहीं करना चाहते हैं तो आपको पहले SIP को निष्क्रिय करना होगा। (/ usr / bin / csrutil अक्षम)
Juergen Braendle

2

आपकी घड़ी कितनी अच्छी तरह सेट है, इस पर एक विश्वसनीय उत्तर पाने के लिए, ntpdate को डिबग मोड में चलाएं:

ntpdate -d pool.ntp.org

यह थोड़ी देर के लिए और एक पंक्ति में समाप्त हो जाएगा जैसे कि

 1 Apr 17:38:16 ntpdate[4711]: adjust time server 123.45.67.89 offset 0.000810 sec

इस मामले में, यह कहने का मतलब है कि मेरी स्थानीय घड़ी कुछ 810 which से दूर थी (जो कि शानदार होगी, यदि वास्तव में सच है, लेकिन 100 एमएस से नीचे का मूल्य अच्छी तरह से एक काम के सिंक्रनाइज़ेशन का संकेत देता है)।


1

क्लॉक सिंक की जाँच करने के लिए, ntpdateडिबग मोड में चलने के सुझाव के समान , आप इसे कम वर्जन आउटपुट के लिए क्वेरी मोड में भी चला सकते हैं।

$ ntpdate -q pool.ntp.org
server 85.199.214.102, stratum 1, offset 0.006256, delay 0.05470
server 95.215.175.2, stratum 3, offset 0.005234, delay 0.05624
server 217.114.59.3, stratum 2, offset 0.007166, delay 0.06274
server 85.199.214.100, stratum 1, offset 0.006319, delay 0.05396
22 Jun 09:20:55 ntpdate[84112]: adjust time server 85.199.214.100 offset 0.006319 sec
$

यह मेरे मैक रनिंग हाई सिएरा 10.13.2 से है, जो timedएनटीपी डेमॉन के बजाय चलता है ( ntpdateअभी भी काम करता है क्योंकि यह एनटीपी डेमॉन का उपयोग नहीं करता है)।

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