कंप्यूटर घड़ियां परफेक्ट नहीं हैं। कुछ दिनों, हफ्तों या महीनों को देखते हुए, वे ड्रिफ्ट करते हैं और वास्तविक समय दिखाना बंद कर देते हैं। सीधे शब्दों में कहें, तो ड्रिफ्ट के बाद, वे दिखा सकते हैं कि यह "10:30" है जब वास्तव में यह "10:33" है। पुराने कंप्यूटरों पर कंप्यूटर घड़ी को समय-समय पर मैन्युअली रीएडजस्ट करना आम बात थी। लेकिन, इंटरनेट कनेक्शन के सर्वव्यापी होने के बाद, आधुनिक ऑपरेटिंग सिस्टम NTP सर्वर्स की मदद से घड़ी को ऑटोमैटिकली एडजस्ट करने लगे।
NTP क्या है?
NTP का अर्थ नेटवर्क टाइम प्रोटोकॉल है। यह एक एल्गोरिदम है जिसे नेटवर्क कनेक्शन के माध्यम से कंप्यूटर घड़ियों को सिंक्रनाइज़ करने और उन्हें सटीक रखने के लिए डिज़ाइन किया गया है।
लिनक्स पर टाइम सिंक्रनाइज़ेशन कैसे सक्षम करें
सौभाग्य से, अधिकांश डिस्ट्रीब्यूशन बॉक्स से बाहर समय सिंक्रनाइज़ेशन का एक रूप या दूसरा लागू करते हैं। यदि आपने कभी अपने कंप्यूटर की घड़ी को अपने फोन की घड़ी से दूर जाते नहीं देखा, तो आपके पास लगभग निश्चित रूप से एक NTP क्लाइंट/डेमन पहले से ही चल रहा है।
systemd वाले लिनक्स OS पर
अधिकांश लिनक्स डिस्ट्रीब्यूशन ने systemd को अपनाया है, और इसके साथ "systemd-timesyncd" डेमन आता है। इसका मतलब है कि आपके पास उबंटू, डेबियन, फेडोरा, आर्क लिनक्स, openSUSE, मंज़ारो और अन्य पर एक NTP क्लाइंट पहले से प्रीइंस्टॉल्ड है। इन डिस्ट्रो पर, और उन पर आधारित अन्य (जैसे, elementary OS, Zorin OS), यह जांचने के लिए चलाएं कि NTP सिंक सक्षम है या नहीं:
timedatectl
यदि आउटपुट में आप Network time on: yes देखते हैं, तो आपकी कंप्यूटर घड़ी NTP के माध्यम से ऑटोमैटिकली समय-समय पर एडजस्ट होती है। कभी-कभी आप NTP synchronized: no भी देख सकते हैं जिसका मतलब हो सकता है कि घड़ी "systemd-timesyncd" के अलावा किसी अन्य टूल के माध्यम से सिंक की गई है। इसका यह भी मतलब हो सकता है कि systemd-timesyncd ने अभी तक सिंक नहीं किया है लेकिन बाद में करेगा।
यदि आप Network time on: no देखते हैं, तो NTP समय सिंक्रनाइज़ेशन सक्षम करने के लिए निम्न कमांड चलाएं।
sudo timedatectl set-ntp true
इन डिस्ट्रीब्यूशन पर आपको बस इतना करना है।
systemd के बिना लिनक्स OS पर
MX लिनक्स के हाल ही में इतना लोकप्रिय होने के साथ, इस OS के बारे में एक उदाहरण शुरू करने के लिए उपयुक्त लगता है। यह एक विशेष मामला भी है। यह "किंडा" systemd रखता है, लेकिन यह "किंडा" नहीं रखता। timedatectl रिपोर्ट करता है कि नेटवर्क समय "ऑन" है, लेकिन systemd-timesyncd उपयोग नहीं किया जाता।
तो यह कैसे सिंक करता है? आप अगले कमांड से जांच सकते हैं जिसका उपयोग आप किसी अन्य लिनक्स ऑपरेटिंग सिस्टम पर कर सकते हैं।
sudo cat /var/log/syslog | grep ntp
MX लिनक्स पर आपको निम्न तस्वीर के समान परिणाम मिलेगा।
इस फिल्टर्ड लॉग संदेश से, आप देख सकते हैं कि "ntpdate" क्लाइंट एक बार चला। यह एक लोकप्रिय क्लाइंट है, जो कई लिनक्स डिस्ट्रीब्यूशन पर डिफ़ॉल्ट रूप से इंस्टॉल होता है। यह हल्का है और केवल छिटपुट रूप से NTP सर्वर्स को क्वेरी करता है। यह बैकग्राउंड में नहीं चलता और स्क्रिप्ट्स द्वारा ट्रिगर होता है, सिंक करता है, फिर बाहर निकलता है।
इसका मतलब है कि समय अत्यधिक उच्च सटीकता (मिलीसेकंड या माइक्रोसेकंड सोचें) के साथ सिंक नहीं किया गया है, लेकिन यह ज्यादातर उद्देश्यों के लिए पर्याप्त सटीक है। यह आमतौर पर कम से कम सेकंड तक सटीक होता है।
अन्य ऑपरेटिंग सिस्टम पर आप "ntpd" देख सकते हैं, जो एक डेमन है, लगातार बैकग्राउंड में चल रहा है और अत्यधिक सटीक है। यह जितना अधिक चलता है, उतना ही सटीक होता जाता है।
यदि किसी कारण से, आप systemd वाले ऑपरेटिंग सिस्टम पर ntp या ntpdate इंस्टॉल करना चाहते हैं, तो पहले systemd के ntp क्लाइंट को अक्षम करें।
sudo timedatectl set-ntp false
बेशक, उपरोक्त कमांड नॉन-systemd डिस्ट्रो पर आवश्यक नहीं है।
ntpdate क्लाइंट इंस्टॉल करें
यह होम कंप्यूटर, लैपटॉप और अन्य डिवाइस के लिए उपयुक्त है जो लगातार इंटरनेट से जुड़े नहीं हैं।
डेबियन, उबंटू, लिनक्स मिंट, Zorin और इन पर आधारित अन्य डिस्ट्रो पर, चलाएं:
sudo apt install ntpdate
उपरोक्त सभी डेबियन-आधारित डिस्ट्रो पर यह बॉक्स से बाहर एक नया नेटवर्क कनेक्शन देखने के बाद चलाने के लिए कॉन्फिगर किया गया है। आप अपने नेटवर्क से डिस्कनेक्ट और पुनः कनेक्ट करके अभी टाइम सिंक को बाध्य कर सकते हैं।
फेडोरा पर, ntpdate डिप्रिकेटेड होगा, इसलिए इसकी बजाय ntpd डेमन का उपयोग करने की सिफारिश की जाती है (अगला सेक्शन देखें)। अन्य सभी डिस्ट्रो के लिए भी यही सिफारिश की जाती है दो कारणों से:
- वे कभी-कभी ntpdate को अलग पैकेज में शामिल नहीं करते बल्कि इसे अगले सेक्शन से ntpd के साथ बंडल करते हैं।
- वे हर नेटवर्क कनेक्शन पर ntpdate को ऑटोमैटिकली चलाने के लिए ऑटोमेट नहीं करते। आपको ntpdate को स्वयं एक स्क्रिप्ट में डालना होगा जो नेटवर्क कनेक्ट होने के बाद ऑटोमैटिकली चलती है।
इस मामले में, अगले सेक्शन में निर्देशानुसार ntpd इंस्टॉल करना अधिक समझदारी है।
ntpd डेमन इंस्टॉल करें
डेबियन, उबंटू, Zorin, मिंट और डेबियन या उबंटू पर आधारित अन्य डिस्ट्रो पर, चलाएं:
sudo apt install ntp
ये डिस्ट्रो ntpd को तुरंत शुरू कर देंगे और फिर हर बूट पर इसे ऑटोमैटिकली लॉन्च करेंगे; आपसे आगे कोई कार्रवाई आवश्यक नहीं है।
फेडोरा पर, इंस्टॉल करें:
sudo dnf install ntp
CentOS पर, चलाएं:
sudo yum install ntp
आर्क लिनक्स के लिए, उपयोग करें:
sudo pacman -S ntp
और openSUSE पर, दर्ज करें:
sudo zypper install ntp
इसके बाद, सर्विस को बूट पर लॉन्च करने के लिए सक्षम करें और फिर इसे शुरू करें:
sudo systemctl enable ntpd sudo systemctl start ntpd
systemd के बिना चलने वाले अन्य डिस्ट्रो पर, आपको इसके बजाय ये कमांड चलाने पड़ सकते हैं:
sudo update-rc.d ntpd enable sudo service ntpd start
या जो भी आपके OS के लिए समकक्ष हो।
यदि आपको त्रुटि मिलती है कि ntpd मौजूद नहीं है, तो उपरोक्त कमांड में "ntpd" को "ntp" से बदलें। कुछ डिस्ट्रीब्यूशन ntpd डेमन सर्विस फाइलों का नाम अलग रखते हैं।