لینکس میں وقت کی مطابقت پذیری: NTP، Chrony اور systemd-timesyncd

لینکس میں وقت کی مطابقت پذیری: NTP، Chrony اور systemd-timesyncd
زیادہ تر لوگ وقت سے باخبر رہتے ہیں۔ ہم اپنی صبح کی رسومات کو مکمل کرنے اور کام پر جانے، دوپہر کے کھانے کے لیے وقفہ کرنے، پراجیکٹ کی آخری تاریخ کو پورا کرنے، سالگرہ اور چھٹیاں منانے، ہوائی جہاز میں سوار ہونے وغیرہ کے لیے وقت پر اٹھتے ہیں۔

مزید یہ کہ: ہم میں سے کچھ وقت کے جنون میں مبتلا ہیں۔ میری گھڑی شمسی توانائی سے چلتی ہے اور نیشنل انسٹی ٹیوٹ آف اسٹینڈرڈز اینڈ ٹیکنالوجی سے اپنا درست وقت حاصل کرتی ہے۔NISTلانگ ویو ریڈیو کے ذریعے فورٹ کولنز، کولوراڈو تک ڈبلیوڈبلیو وی بی. ٹائم سگنلز فورٹ کولنز میں واقع ایٹم کلاک کے ساتھ ہم آہنگ ہوتے ہیں۔ میرا Fitbit میرے فون کے ساتھ مطابقت پذیر ہوتا ہے، جو سرور کے ساتھ مطابقت پذیر ہوتا ہے۔ ینٹیپی، جو بالآخر ایٹمی گھڑی کے ساتھ ہم آہنگ ہو جاتا ہے۔

ڈیوائسز بھی وقت پر نظر رکھتی ہیں۔

ہمارے آلات اور کمپیوٹرز کو درست وقت کی ضرورت کی بہت سی وجوہات ہیں۔ مثال کے طور پر، بینکنگ، سٹاک مارکیٹس اور دیگر مالیاتی کاروباروں میں، لین دین کو درست ترتیب میں ہونا چاہیے، اور اس کے لیے درست وقت کی ترتیب بہت ضروری ہے۔

ہمارے فون، ٹیبلیٹ، کاریں، GPS سسٹم اور کمپیوٹرز کو درست وقت اور تاریخ کی ترتیبات درکار ہوتی ہیں۔ میں چاہتا ہوں کہ میرے کمپیوٹر کے ڈیسک ٹاپ پر گھڑی صحیح وقت دکھائے۔ میں چاہتا ہوں کہ یاد دہانیاں میرے مقامی کیلنڈر میں صحیح وقت پر ظاہر ہوں۔ درست وقت اس بات کو بھی یقینی بناتا ہے کہ کرون اور سسٹمڈ ملازمتیں صحیح وقت پر شروع کی جائیں۔

لاگنگ کے لیے تاریخ اور وقت بھی اہم ہیں، اس لیے تاریخ اور وقت کی بنیاد پر مخصوص نوشتہ جات تلاش کرنا قدرے آسان ہے۔ مثال کے طور پر، میں نے ایک بار DevOps میں کام کیا تھا (اس وقت وہ اسے نہیں کہتے تھے) شمالی کیرولائنا اسٹیٹ میں ایک ای میل سسٹم ترتیب دیا تھا۔ ہم ایک دن میں 20 ملین سے زیادہ ای میلز پر کارروائی کرتے تھے۔ سرورز کی ایک سیریز میں ای میل کا سراغ لگانا یا جغرافیائی طور پر منتشر میزبانوں پر لاگ فائلوں کا استعمال کرتے ہوئے واقعات کی صحیح ترتیب کا تعین کرنا بہت آسان ہو سکتا ہے اگر متعلقہ کمپیوٹرز وقت کے ساتھ مطابقت پذیر ہوں۔

ایک بار - کئی گھنٹے

لینکس کے میزبانوں کو معلوم ہونا چاہیے کہ سسٹم کا وقت اور RTC وقت ہے۔ آر ٹی سی (ریئل ٹائم کلاک) ہارڈ ویئر کلاک کا تھوڑا سا عجیب اور خاص طور پر درست نام نہیں ہے۔

ہارڈ ویئر کی گھڑی مسلسل چلتی ہے، یہاں تک کہ جب کمپیوٹر بند ہو، سسٹم کے مدر بورڈ پر بیٹری کا استعمال کرتے ہوئے۔ RTC کا بنیادی کام وقت کو ذخیرہ کرنا ہے جب ٹائم سرور سے کنکشن دستیاب نہ ہو۔ ان دنوں جب انٹرنیٹ کے ذریعے ٹائم سرور سے جڑنا ناممکن تھا، ہر کمپیوٹر کے پاس ایک درست اندرونی گھڑی ہونا ضروری تھا۔ آپریٹنگ سسٹمز کو بوٹ کے دوران RTC تک رسائی حاصل کرنی پڑتی تھی، اور صارف کو BIOS ہارڈویئر کنفیگریشن انٹرفیس کا استعمال کرتے ہوئے سسٹم کا وقت دستی طور پر سیٹ کرنا پڑتا تھا تاکہ یہ یقینی بنایا جا سکے کہ یہ درست ہے۔

ہارڈ ویئر کی گھڑیاں ٹائم زون کے تصور کو نہیں سمجھتی ہیں۔ RTC صرف وقت کو اسٹور کرتا ہے نہ کہ ٹائم زون یا UTC سے آفسیٹ (مربوط یونیورسل ٹائم، جسے GMT یا گرین وچ مین ٹائم بھی کہا جاتا ہے)۔ آپ ایک ٹول کا استعمال کرتے ہوئے RTC انسٹال کر سکتے ہیں جس پر میں اس مضمون میں بعد میں بات کروں گا۔

سسٹم ٹائم وہ وقت ہے جو OS آپ کے ڈیسک ٹاپ پر GUI گھڑی میں، ڈیٹ کمانڈ کے آؤٹ پٹ میں، لاگ ٹائم سٹیمپ میں دکھاتا ہے۔ یہ ان اوقات پر بھی لاگو ہوتا ہے جب فائلیں بنتی ہیں، تبدیل ہوتی ہیں اور کھولی جاتی ہیں۔

صفحے پر آر ٹی سی کے لیے آدمی RTC اور سسٹم کلاک کی مکمل تفصیل موجود ہے۔

NTP کے ساتھ کیا ہو رہا ہے؟

دنیا بھر کے کمپیوٹرز NTP سرورز کے درجہ بندی کا استعمال کرتے ہوئے انٹرنیٹ پر معیاری حوالہ گھڑیوں کے ساتھ اپنے وقت کو ہم آہنگ کرنے کے لیے NTP (نیٹ ورک ٹائم پروٹوکول) کا استعمال کرتے ہیں۔ مین ٹائم سرورز لیئر 1 میں واقع ہیں، اور وہ سیٹلائٹ، ریڈیو، یا یہاں تک کہ موڈیم کے ذریعے ٹیلی فون لائنوں کے ذریعے لیئر 0 میں مختلف قومی وقت کی خدمات سے براہ راست جڑے ہوئے ہیں۔ لیول 0 پر ٹائم سروسز ایک ایٹم کلاک ہو سکتی ہے، ایک ریڈیو ریسیور جو ایٹم گھڑیوں کے ذریعے منتقل ہونے والے سگنلز کے مطابق ہوتا ہے، یا ایک GPS ریسیور جو GPS سیٹلائٹ کے ذریعے منتقل ہونے والے اعلیٰ درستگی والے گھڑی کے سگنلز کا استعمال کرتا ہے۔

حوالہ سرورز کی اکثریت میں کئی ہزار عوامی NTP سٹریٹم 2 سرورز ہر ایک کے لیے کھلے ہیں۔ بہت سی تنظیمیں اور صارفین (میں خود بھی شامل ہیں) بڑی تعداد میں میزبانوں کے ساتھ جنہیں NTP سرور کی ضرورت ہوتی ہے وہ اپنے ٹائم سرورز کو انسٹال کرنے کا انتخاب کرتے ہیں، اس لیے صرف ایک مقامی میزبان اسٹریٹم 2 یا 3 تک رسائی حاصل کرتا ہے۔ پھر وہ نیٹ ورک پر باقی میزبانوں کو کنفیگر کرتے ہیں۔ مقامی وقت سرور میرے ہوم نیٹ ورک کے معاملے میں، یہ ایک پرت 3 سرور ہے۔

NTP کے مختلف نفاذ

NTP کا اصل نفاذ ntpd ہے۔ اس کے بعد اس میں دو نئے، chronyd اور systemd-timesyncd شامل ہوئے۔ تینوں لوکل ہوسٹ ٹائم کو NTP ٹائم سرور کے ساتھ سنکرونائز کرتے ہیں۔ systemd-timesyncd سروس chronyd کی طرح قابل اعتماد نہیں ہے، لیکن یہ زیادہ تر مقاصد کے لیے کافی ہے۔ اگر RTC مطابقت پذیر نہیں ہے، تو یہ NTP سرور کے ساتھ مطابقت پذیری کے لیے نظام کے وقت کو آہستہ آہستہ ایڈجسٹ کر سکتا ہے جب مقامی نظام کا وقت تھوڑا سا بڑھتا ہے۔ systemd-timesync سروس کو ٹائم سرور کے طور پر استعمال نہیں کیا جا سکتا۔

کرونی ایک NTP عمل درآمد ہے جس میں دو پروگرام ہیں: chronyd ڈیمون اور ایک کمانڈ لائن انٹرفیس جسے chronyc کہتے ہیں۔ Chrony میں کچھ خصوصیات ہیں جو بہت سے معاملات میں ناگزیر ہیں:

  • Chrony پرانی ntpd سروس سے کہیں زیادہ تیزی سے ٹائم سرور کے ساتھ مطابقت پذیر ہو سکتا ہے۔ یہ ان لیپ ٹاپ یا ڈیسک ٹاپس کے لیے اچھا ہے جو ہر وقت نہیں چل رہے ہوتے۔
  • یہ گھڑی کی رفتار میں اتار چڑھاؤ کی تلافی کر سکتا ہے، جیسے کہ جب میزبان سوتا ہے یا سلیپ موڈ میں داخل ہوتا ہے، یا جب فریکوئنسی ہاپنگ کی وجہ سے گھڑی کی رفتار بدل جاتی ہے، جو کم بوجھ کے تحت گھڑی کی رفتار کو کم کر دیتی ہے۔
  • یہ غیر مستحکم نیٹ ورک کنکشن یا نیٹ ورک کی بھیڑ سے متعلق وقت کے مسائل کو حل کرتا ہے۔
  • یہ نیٹ ورک کی تاخیر کو منظم کرتا ہے۔
  • ابتدائی وقت کی مطابقت پذیری کے بعد، Chrony گھڑی کو کبھی نہیں روکتا ہے۔ یہ بہت سی سسٹم سروسز اور ایپلیکیشنز کے لیے مستحکم اور مستقل وقت فراہم کرتا ہے۔
  • Chrony نیٹ ورک کنکشن کے بغیر بھی کام کر سکتا ہے۔ اس صورت میں، مقامی میزبان یا سرور کو دستی طور پر اپ ڈیٹ کیا جا سکتا ہے۔
  • Chrony NTP سرور کے طور پر کام کر سکتا ہے۔

ایک بار پھر، NTP ایک پروٹوکول ہے جسے Chrony یا systemd-timesyncd کا استعمال کرتے ہوئے لینکس ہوسٹ پر لاگو کیا جا سکتا ہے۔

NTP، Chrony، اور systemd-timesyncd RPM پیکیج معیاری فیڈورا ریپوزٹریز میں دستیاب ہیں۔ systemd-udev RPM ایک کرنل ایونٹ مینیجر ہے جو فیڈورا پر ڈیفالٹ کے طور پر انسٹال ہوتا ہے، لیکن استعمال کے لیے ضروری نہیں ہے۔

آپ تینوں کو انسٹال کر سکتے ہیں اور ان کے درمیان سوئچ کر سکتے ہیں، لیکن اس سے غیر ضروری سر درد پیدا ہو گا۔ اس لیے نہ ہی بہتر ہے۔ Fedora، CentOS اور RHEL کی جدید ریلیز ایک معیاری نفاذ کے طور پر Chrony میں تبدیل ہو گئی ہیں، اور اس کے علاوہ ان کے پاس systemd-timesyncd ہے۔ میرے خیال میں Chrony اچھی طرح سے کام کرتا ہے، NTP سروس سے بہتر انٹرفیس فراہم کرتا ہے، بہت زیادہ معلومات اور زیادہ کنٹرول فراہم کرتا ہے، جو یقینی طور پر سسٹم کے منتظمین کو اپیل کرے گا۔

NTP سروسز کو غیر فعال کرنا

آپ کے میزبان کے پاس پہلے سے ہی NTP سروس چل رہی ہے۔ اگر ایسا ہے تو، آپ کو کسی اور چیز پر سوئچ کرنے سے پہلے اسے غیر فعال کرنے کی ضرورت ہے۔ میرے پاس chronyd چل رہا تھا لہذا میں نے اسے روکنے اور غیر فعال کرنے کے لئے درج ذیل کمانڈز کا استعمال کیا۔ آپ اپنے میزبان پر جو بھی NTP ڈیمون چلا رہے ہیں اس کے لیے مناسب کمانڈ چلائیں:

[root@testvm1 ~]# systemctl disable chronyd ; systemctl stop chronyd
Removed /etc/systemd/system/multi-user.target.wants/chronyd.service.
[root@testvm1 ~]#

چیک کریں کہ سروس بند اور غیر فعال ہے:

[root@testvm1 ~]# systemctl status chronyd
● chronyd.service - NTP client/server
     Loaded: loaded (/usr/lib/systemd/system/chronyd.service; disabled; vendor preset: enabled)
     Active: inactive (dead)
       Docs: man:chronyd(8)
             man:chrony.conf(5)
[root@testvm1 ~]#

شروع کرنے سے پہلے اسٹیٹس چیک کر رہا ہے۔

سسٹم کلاک سنکرونائزیشن کی حیثیت آپ کو یہ تعین کرنے کی اجازت دیتی ہے کہ آیا NTP سروس چل رہی ہے۔ چونکہ آپ نے ابھی تک NTP شروع نہیں کیا ہے، اس لیے timesync-status کمانڈ اس کا اشارہ دے گی:

[root@testvm1 ~]# timedatectl timesync-status
Failed to query server: Could not activate remote peer.

براہ راست حیثیت کی درخواست اہم معلومات فراہم کرتی ہے۔ مثال کے طور پر، بغیر کسی دلیل یا پیرامیٹرز کے timedatectl کمانڈ بطور ڈیفالٹ اسٹیٹس سب کمانڈ پر عمل کرتی ہے۔

[root@testvm1 ~]# timedatectl status
           Local time: Fri 2020-05-15 08:43:10 EDT  
           Universal time: Fri 2020-05-15 12:43:10 UTC  
                 RTC time: Fri 2020-05-15 08:43:08      
                Time zone: America/New_York (EDT, -0400)
System clock synchronized: no                          
              NTP service: inactive                    
          RTC in local TZ: yes                    

Warning: The system is configured to read the RTC time in the local time zone.
         This mode cannot be fully supported. It will create various problems
         with time zone changes and daylight saving time adjustments. The RTC
         time is never updated, it relies on external facilities to maintain it.
         If at all possible, use RTC in UTC by calling
         'timedatectl set-local-rtc 0'.
[root@testvm1 ~]#

یہ آپ کو آپ کے میزبان کا مقامی وقت، UTC وقت، اور RTC وقت دے گا۔ اس صورت میں، سسٹم کا وقت America/New_York (TZ) ٹائم زون پر سیٹ کیا گیا ہے، RTC مقامی ٹائم زون پر سیٹ ہے، اور NTP سروس فعال نہیں ہے۔ آر ٹی سی کا وقت سسٹم کے وقت سے تھوڑا ہٹنا شروع ہو گیا ہے۔ یہ ان سسٹمز کے لیے معمول کی بات ہے جن کی گھڑیاں ہم آہنگ نہیں ہوئی ہیں۔ میزبان پر آفسیٹ کی مقدار اس وقت پر منحصر ہے جو سسٹم کو آخری بار مطابقت پذیر ہونے کے بعد گزر چکا ہے۔

ہمیں RTC کے لیے مقامی وقت استعمال کرنے کے بارے میں ایک انتباہ بھی موصول ہوا ہے - یہ ٹائم زون کی تبدیلیوں اور دن کی روشنی کی بچت کے وقت کی ترتیبات پر لاگو ہوتا ہے۔ اگر تبدیلیاں کرنے کی ضرورت کے وقت کمپیوٹر کو بند کر دیا جاتا ہے، تو RTC کا وقت تبدیل نہیں ہوگا۔ لیکن سرورز یا دوسرے میزبانوں کے لیے جو چوبیس گھنٹے کام کرتے ہیں، یہ کوئی مسئلہ نہیں ہے۔ مزید برآں، کوئی بھی سروس جو NTP ٹائم سنکرونائزیشن فراہم کرتی ہے وہ ابتدائی سٹارٹ اپ مرحلے کے دوران میزبان کے وقت کو ایڈجسٹ کرے گی، تاکہ ایک بار سٹارٹ اپ مکمل ہو جائے، وقت دوبارہ درست ہو جائے۔

ٹائم زون کی ترتیب

عام طور پر، آپ تنصیب کے طریقہ کار کے دوران ٹائم زون کی وضاحت کرتے ہیں، اور آپ کو اسے بعد میں تبدیل کرنے کی ضرورت نہیں ہے۔ تاہم، ایسے اوقات ہوتے ہیں جب آپ کو اپنا ٹائم زون تبدیل کرنے کی ضرورت ہوتی ہے۔ کئی ٹولز ہیں جو مدد کر سکتے ہیں۔ لینکس میزبان کے مقامی ٹائم زون کا تعین کرنے کے لیے ٹائم زون فائلوں کا استعمال کرتا ہے۔ یہ فائلیں ڈائریکٹری میں موجود ہیں۔ /usr/share/zoneinfo. پہلے سے طے شدہ طور پر، میرے ٹائم زون کے لیے، نظام یہ لکھتا ہے: /etc/ localtime -> ../usr/share/zoneinfo/America/New_York. لیکن آپ کو اپنے ٹائم زون کو تبدیل کرنے کے لیے ایسی باریکیوں کو جاننے کی ضرورت نہیں ہے۔

کلید آپ کے مقام اور متعلقہ کمانڈ کے لیے آفیشل ٹائم زون کا نام جاننا ہے۔ فرض کریں کہ آپ ٹائم زون کو لاس اینجلس میں تبدیل کرنا چاہتے ہیں:


[root@testvm2 ~]# timedatectl list-timezones | column
<SNIP>
America/La_Paz                  Europe/Budapest
America/Lima                    Europe/Chisinau
America/Los_Angeles             Europe/Copenhagen
America/Maceio                  Europe/Dublin
America/Managua                 Europe/Gibraltar
America/Manaus                  Europe/Helsinki
<SNIP>

اب آپ اپنا ٹائم زون سیٹ کر سکتے ہیں۔ میں نے تبدیلیوں کو چیک کرنے کے لیے ڈیٹ کمانڈ کا استعمال کیا، لیکن آپ ٹائم ڈیٹیکٹل بھی استعمال کر سکتے ہیں:

[root@testvm2 ~]# date
Tue 19 May 2020 04:47:49 PM EDT
[root@testvm2 ~]# timedatectl set-timezone America/Los_Angeles
[root@testvm2 ~]# date
Tue 19 May 2020 01:48:23 PM PDT
[root@testvm2 ~]#

اب آپ اپنے میزبان کے ٹائم زون کو دوبارہ مقامی وقت میں تبدیل کر سکتے ہیں۔

systemd-timesyncd

systemd timesync ڈیمون ایک NTP عمل درآمد فراہم کرتا ہے جس کا انتظام سسٹمڈ سیاق و سباق میں کرنا آسان ہے۔ یہ فیڈورا اور اوبنٹو پر بطور ڈیفالٹ انسٹال ہوتا ہے۔ تاہم، یہ صرف اوبنٹو پر بطور ڈیفالٹ چلتا ہے۔ مجھے دوسری تقسیم کے بارے میں یقین نہیں ہے۔ آپ خود چیک کر سکتے ہیں:

[root@testvm1 ~]# systemctl status systemd-timesyncd

systemd-timesyncd کو ترتیب دینا

systemd-timesyncd کے لیے کنفیگریشن فائل ہے۔ /etc/systemd/timesyncd.conf. یہ ایک سادہ فائل ہے جس میں پرانی NTP اور chronyd سروسز کے مقابلے میں کم اختیارات فعال ہیں۔ میری فیڈورا ورچوئل مشین پر اس فائل کے مندرجات (اضافی تبدیلیوں کے بغیر) یہ ہیں:

#  This file is part of systemd.
#
#  systemd is free software; you can redistribute it and/or modify it
#  under the terms of the GNU Lesser General Public License as published by
#  the Free Software Foundation; either version 2.1 of the License, or
#  (at your option) any later version.
#
# Entries in this file show the compile time defaults.
# You can change settings by editing this file.
# Defaults can be restored by simply deleting this file.
#
# See timesyncd.conf(5) for details.

[Time]
#NTP=
#FallbackNTP=0.fedora.pool.ntp.org 1.fedora.pool.ntp.org 2.fedora.pool.ntp.org 3.fedora.pool.ntp.org
#RootDistanceMaxSec=5
#PollIntervalMinSec=32
#PollIntervalMaxSec=2048

تبصروں کے علاوہ اس میں صرف ایک سیکشن ہے [وقت]۔ باقی تمام سطروں پر تبصرہ کیا گیا ہے۔ یہ پہلے سے طے شدہ اقدار ہیں اور انہیں تبدیل کرنے کی ضرورت نہیں ہے (جب تک کہ آپ کے پاس ایسا کرنے کی کوئی وجہ نہ ہو)۔ اگر آپ کے پاس NTP = لائن میں بیان کردہ NTP ٹائم سرور نہیں ہے، Fedora Fedora فال بیک ٹائم سرور سے ڈیفالٹ ہو جاتا ہے۔ میں عام طور پر اپنا ٹائم سرور شامل کرتا ہوں:

NTP=myntpserver

ٹائم سنک چلائیں۔

آپ systemd-timesyncd کو اس طرح شروع اور فعال بنا سکتے ہیں:

[root@testvm2 ~]# systemctl enable systemd-timesyncd.service
Created symlink /etc/systemd/system/dbus-org.freedesktop.timesync1.service → /usr/lib/systemd/system/systemd-timesyncd.service.
Created symlink /etc/systemd/system/sysinit.target.wants/systemd-timesyncd.service → /usr/lib/systemd/system/systemd-timesyncd.service.
[root@testvm2 ~]# systemctl start systemd-timesyncd.service
[root@testvm2 ~]#

ہارڈ ویئر گھڑی سیٹ کرنا

Timesyncd چلانے کے بعد صورت حال یہ ہے:

[root@testvm2 systemd]# timedatectl
               Local time: Sat 2020-05-16 14:34:54 EDT  
           Universal time: Sat 2020-05-16 18:34:54 UTC  
                 RTC time: Sat 2020-05-16 14:34:53      
                Time zone: America/New_York (EDT, -0400)
System clock synchronized: yes                          
              NTP service: active                      
          RTC in local TZ: no    

ابتدائی طور پر، RTC اور مقامی وقت (EDT) کے درمیان فرق ایک سیکنڈ سے بھی کم ہے، اور اگلے چند دنوں میں یہ فرق مزید چند سیکنڈ تک بڑھ جاتا ہے۔ چونکہ RTC میں ٹائم زونز کا کوئی تصور نہیں ہے، اس لیے timedatectl کمانڈ کو صحیح ٹائم زون کا تعین کرنے کے لیے موازنہ کرنا چاہیے۔ اگر RTC کا وقت مقامی وقت کے عین مطابق نہیں ہے، تو یہ مقامی ٹائم زون سے مطابقت نہیں رکھتا ہے۔

مزید معلومات کی تلاش میں، میں نے systemd-timesync کی حیثیت کی جانچ کی اور یہ پایا:

[root@testvm2 systemd]# systemctl status systemd-timesyncd.service
● systemd-timesyncd.service - Network Time Synchronization
     Loaded: loaded (/usr/lib/systemd/system/systemd-timesyncd.service; enabled; vendor preset: disabled)
     Active: active (running) since Sat 2020-05-16 13:56:53 EDT; 18h ago
       Docs: man:systemd-timesyncd.service(8)
   Main PID: 822 (systemd-timesyn)
     Status: "Initial synchronization to time server 163.237.218.19:123 (2.fedora.pool.ntp.org)."
      Tasks: 2 (limit: 10365)
     Memory: 2.8M
        CPU: 476ms
     CGroup: /system.slice/systemd-timesyncd.service
             └─822 /usr/lib/systemd/systemd-timesyncd

May 16 09:57:24 testvm2.both.org systemd[1]: Starting Network Time Synchronization...
May 16 09:57:24 testvm2.both.org systemd-timesyncd[822]: System clock time unset or jumped backwards, restoring from recorded timestamp: Sat 2020-05-16 13:56:53 EDT
May 16 13:56:53 testvm2.both.org systemd[1]: Started Network Time Synchronization.
May 16 13:57:56 testvm2.both.org systemd-timesyncd[822]: Initial synchronization to time server 163.237.218.19:123 (2.fedora.pool.ntp.org).
[root@testvm2 systemd]#

لاگ پیغام کو نوٹ کریں جو کہتا ہے کہ سسٹم کا وقت سیٹ نہیں ہے یا اسے دوبارہ ترتیب دیا گیا ہے۔ Timesync سروس ٹائم اسٹیمپ کی بنیاد پر سسٹم کا وقت سیٹ کرتی ہے۔ ٹائم اسٹیمپس ٹائم سنک ڈیمون کے ذریعہ برقرار رکھے جاتے ہیں اور جب بھی کامیاب ہم آہنگی ہوتی ہے تو اسے تخلیق کیا جاتا ہے۔

ٹائم ڈیٹیکٹل کمانڈ میں سسٹم کلاک سے ہارڈ ویئر کلاک ویلیو لینے کی صلاحیت نہیں ہے۔ یہ صرف کمانڈ لائن پر درج قیمت سے وقت اور تاریخ مقرر کر سکتا ہے۔ آپ hwclock کمانڈ کا استعمال کرتے ہوئے RTC کو سسٹم ٹائم کی قدر پر سیٹ کر سکتے ہیں:

[root@testvm2 ~]# /sbin/hwclock --systohc --localtime
[root@testvm2 ~]# timedatectl
               Local time: Mon 2020-05-18 13:56:46 EDT  
           Universal time: Mon 2020-05-18 17:56:46 UTC  
                 RTC time: Mon 2020-05-18 13:56:46      
                Time zone: America/New_York (EDT, -0400)
System clock synchronized: yes                          
              NTP service: active                      
          RTC in local TZ: yes

--localtime آپشن ہارڈویئر گھڑی کو UTC کے بجائے مقامی وقت دکھانے کے لیے کہتا ہے۔

آپ کو بالکل RTC کی ضرورت کیوں ہے؟

کسی بھی NTP کا نفاذ آغاز کے دوران سسٹم کی گھڑی کو ترتیب دے گا۔ اور پھر RTC کیوں؟ یہ مکمل طور پر درست نہیں ہے: یہ صرف اس صورت میں ہوگا جب آپ کا ٹائم سرور سے نیٹ ورک کنکشن ہو۔ تاہم، بہت سے سسٹمز کو نیٹ ورک کنکشن تک مسلسل رسائی حاصل نہیں ہوتی، اس لیے ایک ہارڈویئر گھڑی مفید ہے تاکہ لینکس اس کی بنیاد پر سسٹم کا وقت مقرر کر سکے۔ یہ وقت کو دستی طور پر ترتیب دینے سے بہتر ہے، حالانکہ یہ حقیقی وقت سے ہٹ سکتا ہے۔

حاصل يہ ہوا

اس مضمون میں تاریخ، وقت اور ٹائم زون کے انتظام کے لیے کچھ ٹولز شامل ہیں۔ systemd-timesyncd ٹول ایک NTP کلائنٹ فراہم کرتا ہے جو مقامی میزبان پر وقت کو NTP سرور کے ساتھ ہم آہنگ کر سکتا ہے۔ تاہم، systemd-timesyncd سرور سروس فراہم نہیں کرتا، لہذا اگر آپ کو اپنے نیٹ ورک پر NTP سرور کی ضرورت ہے، تو آپ کو سرور کے طور پر کام کرنے کے لیے کچھ اور استعمال کرنا چاہیے - جیسے Chrony -۔

میں اپنے نیٹ ورک پر کسی بھی سروس کے لیے ایک ہی نفاذ کو ترجیح دیتا ہوں، اس لیے میں Chrony استعمال کرتا ہوں۔ اگر آپ کو مقامی NTP سرور کی ضرورت نہیں ہے یا اگر آپ کو Chrony کو بطور سرور اور systemd-timesyncd کو بطور SNTP کلائنٹ استعمال کرنے میں کوئی اعتراض نہیں ہے۔ بہر حال، اگر آپ systemd-timesyncd کی فعالیت سے مطمئن ہیں تو Chrony کی اضافی خصوصیات کو بطور کلائنٹ استعمال کرنے کی ضرورت نہیں ہے۔

ایک اور نوٹ: آپ کو NTP کو لاگو کرنے کے لیے سسٹمڈ ٹولز استعمال کرنے کی ضرورت نہیں ہے۔ آپ ntpd، Chrony، یا کسی اور NTP نفاذ کا پرانا ورژن استعمال کر سکتے ہیں۔ سب کے بعد، systemd خدمات کی ایک بڑی تعداد پر مشتمل ہے؛ ان میں سے بہت سے اختیاری ہیں، لہذا آپ انہیں غیر فعال کر سکتے ہیں اور اس کے بجائے کچھ اور استعمال کر سکتے ہیں۔ یہ ایک بہت بڑا یک سنگی عفریت نہیں ہے۔ ہو سکتا ہے آپ کو سسٹمڈ یا اس کے کچھ حصے پسند نہ ہوں، لیکن آپ کو باخبر فیصلہ کرنا چاہیے۔

مجھے systemd کا NTP نفاذ پسند ہے، لیکن میں Chrony کو ترجیح دیتا ہوں کیونکہ یہ میری ضروریات کے مطابق بہتر ہے۔ یہ لینکس ہے، بچے -)

ایڈورٹائزنگ کے حقوق پر

VDSina پیشکش کرتا ہے۔ کسی بھی کام کے لیے سرورزخود کار طریقے سے انسٹالیشن کے لیے آپریٹنگ سسٹمز کا ایک بہت بڑا انتخاب، آپ کے اپنے سے کوئی بھی OS انسٹال کرنا ممکن ہے ISOآرام دہ اور پرسکون کنٹرول پینل اپنی ترقی اور روزانہ ادائیگی۔ آئیے آپ کو یاد دلاتے ہیں کہ ہمارے پاس ابدی سرور ہیں جو یقینی طور پر لازوال ہیں 😉

لینکس میں وقت کی مطابقت پذیری: NTP، Chrony اور systemd-timesyncd

ماخذ: www.habr.com

نیا تبصرہ شامل کریں