इस लेख में, हम आपको दिखाएंगे कि समय, दिनांक, समय क्षेत्र कैसे सेट करें, एनटीपी सर्वर के साथ समय को सिंक्रनाइज़ करें और CentOS Linux में विशिष्ट मुद्दों को ठीक करें।
सर्वर पर दो प्रकार की घड़ियां होती हैं:हार्डवेयर एक (रीयल-टाइम क्लॉक) जो सर्वर के बंद होने पर भी काम कर रही हो और ऑपरेटिंग सिस्टम सॉफ़्टवेयर घड़ी इन घड़ियों पर समय अलग हो सकता है। ऑपरेटिंग सिस्टम शुरू करने के बाद, सॉफ़्टवेयर घड़ी एक हार्डवेयर पर आधारित होती है और इसे OS द्वारा समायोजित किया जा सकता है।
अधिकांश एप्लिकेशन अपने संचालन में सॉफ़्टवेयर घड़ी के समय का उपयोग करते हैं।
Hwclock:हार्डवेयर टाइम कॉन्फ़िगरेशन
Hwclock Linux में हार्डवेयर समय की जांच करने के लिए प्रयोग किया जाता है:
hwclock --localtime
— बिना सुधार के हार्डवेयर समय की जांच करेंhwclock --utc
- समय प्रदर्शित करता है यदि हार्डवेयर घड़ी UTC समय दिखाती है
# hwclock --localtime
2020-10-12 06:12:02.912866-04:00
# hwclock --utc
2020-10-12 02:12:18.915319-04:00
सिस्टम समय के अनुसार हार्डवेयर समय निर्धारित करने के लिए, यह कमांड चलाएँ:# hwclock --systohc
अपना इच्छित हार्डवेयर समय सेट करने के लिए, निम्न चलाएँ:# hwclock --set --date "11 Oct 2020 17:30"
CentOS में मैन्युअल समय कॉन्फ़िगरेशन
Linux में, तारीख या timedatectl सॉफ्टवेयर समय की जांच और सेट करने के लिए उपकरणों का उपयोग किया जाता है। अगर आप तारीख . पर कॉल करते हैं बिना किसी पैरामीटर के, यह आपके सर्वर पर वर्तमान समय दिखाएगा:
# date
Sun Oct 11 22:14:54 EDT 2020
यदि आप मैन्युअल रूप से समय निर्धारित करना चाहते हैं, तो आप तारीख . का उपयोग कर सकते हैं अतिरिक्त मापदंडों के साथ:
# date MMDDhhmm
उदाहरण के लिए:
# date 10261740
दिनांक, समय, समय क्षेत्र, सिंक्रनाइज़ेशन सेटिंग, डे-लाइट सेविंग टाइम सेटिंग (DST), timedatectl के बारे में विस्तृत जानकारी प्राप्त करने के लिए प्रयोग किया जाता है। यह सर्वर पर समय सेटिंग के बारे में अधिक विस्तृत जानकारी देता है।
Timedatectl भी समय बदलने की अनुमति देता है:
# timedatectl set-time '2020-10-11 17:51:00'
CentOS में टाइमज़ोन कैसे सेट करें?
CentOS Linux पर अपने समय क्षेत्र के अनुसार समय निर्धारित करने के लिए, आप इसे मैन्युअल रूप से बदल सकते हैं। ऐसा करने के लिए, आप दो टूल का उपयोग कर सकते हैं:
- timedatectl
- tzdata
timedatectl . का उपयोग करके समय क्षेत्र बदलने के लिए , यह कमांड चलाएँ:
# timedatectl set-timezone Canada/Pacific
# date
या आप tzdata . का उपयोग कर सकते हैं . इस पद्धति का उपयोग करने के लिए, फ़ाइल को बदलें /etc/localtime जिसकी आपको आवश्यकता है उसके साथ। समय क्षेत्रों की पूरी सूची /usr/share/zoneinfo/
. में स्थित है निर्देशिका। आइए एक समय क्षेत्र को कनाडा/प्रशांत . में बदलें . वर्तमान लोकेटाइम फ़ाइल का बैकअप लें:
# mv /etc/localtime /etc/localtime.bak
आप जिस टाइमज़ोन को सेट करना चाहते हैं, उसके लिए एक सिमलिंक बनाएं:# ln -s /usr/share/zoneinfo/Canada/Pacific /etc/localtime
NTP टाइम सर्वर के साथ समय को सिंक करने के लिए CentOS को कॉन्फ़िगर करें
आप अपने होस्ट पर बाहरी NTP (नेटवर्क टाइम प्रोटोकॉल) सर्वर के साथ स्वचालित समय सिंक्रनाइज़ेशन कॉन्फ़िगर कर सकते हैं। ऐसा करने के लिए, आपको ntp सेवा . को स्थापित करना होगा . उदाहरण के लिए, आप इसे CentOS 7 में yum का उपयोग करके इंस्टॉल कर सकते हैं:
# yum install ntp -y
स्थापना के बाद, एनटीपीडी सेवा शुरू करें और इसे स्टार्टअप में जोड़ें:
# systemctl start ntpd.service
# systemctl enable ntpd.service
सुनिश्चित करें कि सेवा चल रही है:
# service ntpd status
Redirecting to /bin/systemctl status ntpd.service ● ntpd.service - Network Time Service Loaded: loaded (/usr/lib/systemd/system/ntpd.service; enabled; vendor preset: disabled) Active: active (running) since Thu 2020-10-11 15:37:33 +06; 5min ago Main PID: 3057 (ntpd) CGroup: /system.slice/ntpd.service └─3057 /usr/sbin/ntpd -u ntp:ntp -g
/etc/ntp.conf . में समय को सिंक्रोनाइज़ करने के लिए NTP सर्वर निर्दिष्ट करें :
server 0.pool.ntp.org server 1.pool.ntp.org server 2.pool.ntp.org
समय बारी-बारी से सिंक्रनाइज़ किया जाता है। यदि पहला NTP सर्वर उपलब्ध नहीं है, तो दूसरे का उपयोग किया जाता है, आदि।
आप इस आदेश का उपयोग करके मैन्युअल रूप से निर्दिष्ट NTP सर्वर के साथ समय को सिंक्रनाइज़ कर सकते हैं:
# ntpdate 192.168.1.23
डिफ़ॉल्ट रूप से, ntpd "11 मिनट मोड" सक्षम करता है। इसका मतलब है कि हर 11 मिनट में समय को सिंक्रोनाइज़ किया जाएगा। यदि आप ntpd . का उपयोग नहीं कर सकते हैं डेमॉन, आप क्रोन का उपयोग करके समय सिंक्रनाइज़ेशन को कॉन्फ़िगर कर सकते हैं। क्रॉन में निम्न कमांड जोड़ें:
# ntpdate pool.ntp.org
Chronyd का उपयोग करके CentOS 8 में समय कैसे सिंक करें?
CentOS 8 में आपको chrony . का उपयोग करना होगा समय को सिंक्रनाइज़ करने के लिए, चूंकि ntp और ntpdate को आधिकारिक रिपॉजिटरी से हटा दिया गया है।
क्रोनी के मुख्य लाभ हैं:
- समय तुल्यकालन की उच्च गति और सटीकता;
- उचित संचालन यदि आपके पास मास्टर घड़ी तक पहुंच नहीं है (एनटीपीडी को नियमित अनुरोधों की आवश्यकता है);
- डिफ़ॉल्ट रूप से, प्रोग्राम चलाने के लिए किसी भी समस्या को रोकने के लिए सिंक्रनाइज़ेशन के ठीक बाद समय को संशोधित नहीं किया जाता है;
- कम संसाधनों का उपयोग करता है।
डिफ़ॉल्ट रूप से, क्रोनी CentOS Linux में पहले से ही स्थापित है, लेकिन अगर किसी कारण से आपके पास यह नहीं है, तो इसे स्थापित करें:
# dnf install chrony
किसी भी अन्य सेवा की तरह, chrony को प्रारंभ करने और स्थापना के बाद स्टार्टअप में जोड़ने की आवश्यकता होती है:
# systemctl start chronyd
# systemctl enable chronyd
क्रोनीड सेवा की स्थिति जांचें:
# systemctl status chronyd
यह सुनिश्चित करने के लिए कि समय सिंक्रनाइज़ेशन काम कर रहा है, यह कमांड चलाएँ:
# timedatectl status
NTP Service: active
<मजबूत>
क्रोनी कॉन्फ़िगरेशन फ़ाइल है /etc/chrony.conf . उन NTP सर्वरों की सूची निर्दिष्ट करें जिनका आप सिंक्रनाइज़ेशन के लिए उपयोग करना चाहते हैं। पसंद करें एनटीपी , chrony में कमांड-लाइन इंटरफ़ेस होता है:chronyc . वर्तमान समय सिंक्रनाइज़ेशन विकल्पों के बारे में जानकारी देखने के लिए, यह आदेश चलाएँ:
# chronyc tracking
सिंक सर्वर के बारे में जानकारी देखने के लिए:
# chronyc sources
यदि आप विशिष्ट तिथि और समय को मैन्युअल रूप से सेट करना चाहते हैं, तो आप तारीख . का उपयोग कर सकते हैं , लेकिन पहले chronyd . को अक्षम कर दें डेमॉन।
CentOS में कॉमन टाइम सिन इश्यूज
इस अनुभाग में, मैं विशिष्ट त्रुटियों का वर्णन करूंगा जो timedatectl . के साथ काम करते समय दिखाई देती हैं , एनटीपी ।
मैनुअल टाइम सिंक्रोनाइज़ेशन के दौरान आपको यह त्रुटि आ सकती है:
# ntpdate pool.ntp.org
ntpdate [26214]: the NTP socket is in use, exiting
इसका मतलब है कि ntpd डेमॉन चल रहा है और मैनुअल टाइम सिंक्रोनाइज़ेशन को रोक रहा है। मैन्युअल रूप से समय को सिंक्रनाइज़ करने के लिए, ntpd डेमॉन को रोकें:
# service ntpd stop
और फिर से सिंक्रनाइज़ेशन चलाएँ।
Timedatectl के साथ काम करते समय भी यही त्रुटि हो सकती है:
Failed to set time: Automatic time synchronization is enabled.
आपको timedatectl में स्वचालित समन्वयन अक्षम करना होगा:
# timedatectl set-ntp 0
और अपना मनचाहा समय और तारीख निर्धारित करने के लिए इस कमांड को चलाएँ:
# timedatectl set-time '2020-11-12 17:41:00'
समय क्षेत्र के साथ काम करते समय, ऐसा हो सकता है कि वे आपके सर्वर पर स्थापित नहीं हैं और आप स्थानीय समय के लिए एक सिमलिंक बनाने में सक्षम नहीं हैं। अपने होस्ट पर समय क्षेत्र उपलब्ध कराने के लिए, tzdata टूल इंस्टॉल करें:
# yum install tzdata -y
साथ ही, मैन्युअल सिंक्रनाइज़ेशन के दौरान आपको निम्न त्रुटियों का सामना करना पड़ सकता है:
11 Oct 21:11:19 ntpdate[897482]: sendto(xx.xx.xx.98): Operation not permitted
इस मामले में, अपने फ़ायरवॉल/iptables नियमों की जाँच करें और सुनिश्चित करें कि आपके सर्वर पर UDP पोर्ट 123 खुला है। साथ ही, कुछ NTP होस्ट सत्यापन के दौरान उपलब्ध नहीं भी हो सकते हैं।