Linux Time Synchronization- NTP၊ Chrony နှင့် systemd-timesyncd

Linux Time Synchronization- NTP၊ Chrony နှင့် systemd-timesyncd
လူအများစုသည် အချိန်ကို စောင့်ထိန်းကြသည်။ ကျွန်ုပ်တို့သည် ကျွန်ုပ်တို့၏ နံနက်ခင်း ဓလေ့ထုံးတမ်းများကို ပြီးမြောက်ရန် အချိန်မှန်ထကာ အလုပ်သွားခြင်း၊ နေ့လယ်စာ အနားယူခြင်း၊ ပရောဂျက် သတ်မှတ်ရက် ပြည့်မီခြင်း၊ မွေးနေ့နှင့် အားလပ်ရက်များကို ဂုဏ်ပြုခြင်း၊ လေယာဉ်ပေါ်တက်ခြင်း အစရှိသည်တို့ကို လုပ်ဆောင်ကြသည်။

ထို့အပြင် ကျွန်ုပ်တို့ထဲမှ အချို့သည် အချိန်ကို စွဲလမ်းကြသည်။ ကျွန်ုပ်၏လက်ပတ်နာရီကို နေရောင်ခြည်စွမ်းအင်ဖြင့် အသုံးပြုထားပြီး National Institute of Standards and Technology မှ တိကျသောအချိန်ကို ရရှိသည် (NIST) Longwave ရေဒီယိုမှတဆင့် ကော်လိုရာဒို၊ Fort Collins သို့ WWBB. အချိန်အချက်ပြမှုများကို Fort Collins တွင်ရှိသော အက်တမ်နာရီနှင့် ထပ်တူပြုပါသည်။ ကျွန်ုပ်၏ Fitbit သည် ဆာဗာနှင့် စင့်ခ်လုပ်နေသည့် ကျွန်ုပ်၏ဖုန်းနှင့် စင့်ခ်လုပ်နေသည်။ NTPနောက်ဆုံးတွင် အက်တမ်နာရီနှင့် ထပ်တူပြုသည်။

စက်ပစ္စည်းများသည် အချိန်ကို မှတ်သားထားကြသည်။

ကျွန်ုပ်တို့၏စက်ပစ္စည်းများနှင့် ကွန်ပျူတာများသည် တိကျသောအချိန်လိုအပ်သည့် အကြောင်းရင်းများစွာရှိပါသည်။ ဥပမာအားဖြင့်၊ ဘဏ်လုပ်ငန်း၊ စတော့ဈေးကွက်နှင့် အခြားဘဏ္ဍာရေးလုပ်ငန်းများတွင် ငွေပေးငွေယူများကို သင့်လျော်သောစနစ်တကျ ဆောင်ရွက်ရမည်ဖြစ်ပြီး တိကျသောအချိန်အပိုင်းအစများသည် ယင်းအတွက် အရေးကြီးပါသည်။

ကျွန်ုပ်တို့၏ဖုန်းများ၊ တက်ဘလက်များ၊ ကားများ၊ GPS စနစ်များနှင့် ကွန်ပျူတာများအားလုံးသည် တိကျသောအချိန်နှင့် ရက်စွဲဆက်တင်များ လိုအပ်ပါသည်။ ကျွန်ုပ်၏ကွန်ပျူတာ desktop ပေါ်ရှိ နာရီကို အချိန်မှန်ပြသစေလိုပါသည်။ အချိန်တန်လျှင် ကျွန်ုပ်၏ ဒေသန္တရပြက္ခဒိန်တွင် သတိပေးချက်များ ပေါ်လာစေလိုပါသည်။ မှန်ကန်သောအချိန်သည် cron နှင့် systemd အလုပ်များကို မှန်ကန်သောအချိန်တွင် လုပ်ဆောင်ကြောင်းလည်း သေချာစေသည်။

မှတ်တမ်းမှတ်ရာအတွက် ရက်စွဲနှင့် အချိန်သည်လည်း အရေးကြီးသည်၊ ထို့ကြောင့် ရက်စွဲနှင့် အချိန်ပေါ်မူတည်၍ အချို့သောမှတ်တမ်းများကို ရှာဖွေရန် အနည်းငယ်လွယ်ကူပါသည်။ ဥပမာအားဖြင့်၊ ကျွန်ုပ်သည် တစ်ချိန်က DevOps တွင် အလုပ်လုပ်ခဲ့သည် (ထိုအချိန်က ထိုသို့မခေါ်ဆိုခြင်း) နှင့် မြောက်ကာရိုလိုင်းနားပြည်နယ်တွင် အီးမေးလ်စနစ်တစ်ခု တည်ဆောက်နေပါသည်။ ကျွန်ုပ်တို့သည် တစ်နေ့လျှင် အီးမေးလ် သန်း 20 ကျော်ကို စီမံဆောင်ရွက်နေပါသည်။ ဆာဗာများမှတဆင့် အီးမေးလ်ကို ခြေရာခံခြင်း သို့မဟုတ် ပထဝီဝင်အနေအထားအရ ပြန့်ကျဲနေသော host များပေါ်တွင် မှတ်တမ်းဖိုင်များကို အသုံးပြုပြီး ဖြစ်ရပ်များ၏ အတိအကျ စီစဥ်ကို ဆုံးဖြတ်ခြင်းသည် သက်ဆိုင်ရာ ကွန်ပျူတာများကို အချိန်မီ ထပ်တူပြုပါက ပိုမိုလွယ်ကူနိုင်သည်။

တစ်ကြိမ် - နာရီများစွာ

Linux host များသည် စနစ်အချိန်နှင့် RTC အချိန်ရှိကြောင်း ထည့်သွင်းစဉ်းစားရပါမည်။ RTC (Real Time Clock) သည် ဟာ့ဒ်ဝဲနာရီအတွက် အနည်းငယ်ထူးဆန်းပြီး အလွန်တိကျမှုမရှိသော အမည်တစ်ခုဖြစ်သည်။

ဟာ့ဒ်ဝဲနာရီသည် ကွန်ပြူတာပိတ်နေချိန်၌ပင် စနစ် မားသားဘုတ်ပေါ်ရှိ ဘက်ထရီကို အသုံးပြု၍ အဆက်မပြတ် လည်ပတ်နေပါသည်။ RTC ၏ အဓိကလုပ်ဆောင်ချက်မှာ အချိန်ဆာဗာတစ်ခုနှင့် ချိတ်ဆက်မှု မရရှိနိုင်သည့်အခါ အချိန်ကို သိမ်းဆည်းရန်ဖြစ်သည်။ အင်တာနက်ပေါ်ရှိ အချိန်ဆာဗာတစ်ခုသို့ ချိတ်ဆက်ရန် မဖြစ်နိုင်သောကာလများတွင်၊ ကွန်ပျူတာတိုင်းတွင် တိကျသော စက်တွင်းနာရီတစ်ခု ရှိရမည်ဖြစ်သည်။ Operating Systems များသည် boot time တွင် RTC ကို ဝင်ရောက်သုံးစွဲရမည်ဖြစ်ပြီး အသုံးပြုသူသည် မှန်ကန်ကြောင်းသေချာစေရန် BIOS hardware configuration interface ကိုအသုံးပြု၍ စနစ်အချိန်ကို ကိုယ်တိုင်သတ်မှတ်ရမည်ဖြစ်သည်။

ဟာ့ဒ်ဝဲနာရီများသည် အချိန်ဇုန်များ၏ သဘောတရားကို နားမလည်ပါ။ RTC သည် အချိန်ဇုန် သို့မဟုတ် အော့ဖ်ဆက်မဟုတ်သည့်အချိန်ကို UTC (ဂရင်းနစ်စံတော်ချိန် သို့မဟုတ် ဂရင်းနစ်စံတော်ချိန်ဟုလည်း ခေါ်သည်) မှသာလျှင် သိမ်းဆည်းထားသည်။ ဤဆောင်းပါးတွင် ကျွန်ုပ်ဖော်ပြမည့် ကိရိယာကို အသုံးပြု၍ RTC ကို သင် ထည့်သွင်းနိုင်သည်။

စနစ်အချိန်သည် သင့် desktop ပေါ်ရှိ GUI နာရီပေါ်တွင် OS မှ ပြသသည့်အချိန်၊ ရက်စွဲအမိန့်တော်၏ အထွက်တွင်၊ မှတ်တမ်းများ၏ အချိန်တံဆိပ်များတွင် ပြသသည့်အချိန်ဖြစ်သည်။ ဖိုင်များကို ဖန်တီးခြင်း၊ ပြင်ဆင်ခြင်းနှင့် ဖွင့်သည့်အခါတွင်လည်း ၎င်းသည် အကျုံးဝင်ပါသည်။

စာမျက်နှာပေါ်တွင် rtc အတွက်လူ RTC နှင့် စနစ်နာရီ၏ အပြည့်အစုံ ဖော်ပြချက် ရှိပါသည်။

NTP က ဘာလဲ။

တစ်ကမ္ဘာလုံးရှိ ကွန်ပျူတာများသည် NTP (Network Time Protocol) ကို အသုံးပြု၍ ၎င်းတို့၏အချိန်များကို အင်တာနက်ပေါ်ရှိ စံရည်ညွှန်းနာရီများနှင့် NTP ဆာဗာများ၏ အထက်တန်းကျသော စံနှုန်းများဖြင့် တစ်ပြိုင်တည်းချိန်ကိုက်ကြသည်။ အဓိကအချိန်ဆာဗာများသည် အလွှာ 1 တွင်ရှိပြီး ၎င်းတို့သည် ဂြိုလ်တု၊ ရေဒီယို သို့မဟုတ် တယ်လီဖုန်းလိုင်းများမှ မိုဒမ်များမှတစ်ဆင့် အလွှာ 0 ရှိ နိုင်ငံအလိုက်အချိန်ဝန်ဆောင်မှုများနှင့် တိုက်ရိုက်ချိတ်ဆက်ထားသည်။ အလွှာ၏ အချိန် ၀န်ဆောင်မှုများသည် အနုမြူနာရီများ၊ အက်တမ်နာရီများမှ ထုတ်လွှင့်သည့် အချက်ပြမှုများကို ချိန်ညှိထားသည့် ရေဒီယိုလက်ခံကိရိယာ သို့မဟုတ် GPS ဂြိုလ်တုများမှ ပေးပို့သော အလွန်တိကျသော နာရီအချက်ပြမှုများကို အသုံးပြုသည့် GPS လက်ခံကိရိယာ ဖြစ်နိုင်သည်။

ရည်ညွှန်းဆာဗာအများစုတွင် အများသူငှာဖွင့်ထားသော NTP stratum 2 ဆာဗာထောင်ပေါင်းများစွာရှိသည်။ NTP ဆာဗာ လိုအပ်သော host များစွာရှိသော အဖွဲ့အစည်းများနှင့် အသုံးပြုသူများ (ကိုယ်တိုင်ပါဝင်သည်) သည် ၎င်းတို့၏ ကိုယ်ပိုင်အချိန်ဆာဗာများကို စနစ်ထည့်သွင်းရန် ရွေးချယ်သောကြောင့် ဒေသခံ host တစ်ခုတည်းက stratum 2 သို့မဟုတ် 3 ကို အသုံးပြုပါသည်။ ထို့နောက် ၎င်းတို့သည် local ကိုအသုံးပြုရန်အတွက် ကွန်ရက်ပေါ်ရှိ ကျန်ရှိသော node များကို configure လုပ်ပါသည်။ အချိန်ဆာဗာ။ ကျွန်ုပ်၏အိမ်သုံးကွန်ရက်တွင်၊ ၎င်းသည် အလွှာ 3 ဆာဗာဖြစ်သည်။

NTP ၏ အမျိုးမျိုးသော အကောင်အထည်ဖော်မှုများ

NTP ၏ မူလအကောင်အထည်ဖော်မှုသည် ntpd ဖြစ်သည်။ ထို့နောက် ၎င်းကို chronyd နှင့် systemd-timesyncd နှစ်မျိုးဖြင့် ပေါင်းထားသည်။ သုံးခုစလုံးသည် NTP အချိန်ဆာဗာတစ်ခုနှင့် ဒေသတွင်း လက်ခံကျင်းပချိန်ကို ထပ်တူပြုပါသည်။ systemd-timesyncd ဝန်ဆောင်မှုသည် chronyd ကဲ့သို့ ယုံကြည်စိတ်ချရမှုမရှိသော်လည်း ရည်ရွယ်ချက်အများစုအတွက် လုံလောက်ပါသည်။ RTC သည် တစ်ပြိုင်နက်တည်းမဟုတ်ပါက၊ စက်တွင်းစနစ်အချိန်အနည်းငယ်ရွေ့လျားလာသောအခါ NTP ဆာဗာနှင့် ထပ်တူပြုရန် စနစ်အချိန်ကို ဖြည်းဖြည်းချင်း ချိန်ညှိနိုင်သည်။ systemd-timesync ဝန်ဆောင်မှုကို အချိန်ဆာဗာအဖြစ် အသုံးမပြုနိုင်ပါ။

ခရိုနီ Chronyd daemon နှင့် chronyc ဟုခေါ်သော command-line interface တစ်ခုပါရှိသော ပရိုဂရမ်နှစ်ခုပါရှိသော NTP ၏ အကောင်အထည်ဖော်မှုတစ်ခုဖြစ်သည်။ Chrony တွင် ကိစ္စအများအပြားတွင် မရှိမဖြစ်လိုအပ်သော အင်္ဂါရပ်အချို့ရှိသည်။

  • Chrony သည် ယခင် ntpd ဝန်ဆောင်မှုထက် များစွာမြန်ဆန်သော အချိန်ဆာဗာတစ်ခုနှင့် ထပ်တူပြုနိုင်သည်။ ၎င်းသည် တစ်ချိန်လုံး အလုပ်မလုပ်သော လက်ပ်တော့များ သို့မဟုတ် ဒက်စ်တော့များအတွက် ကောင်းမွန်သည်။
  • လက်ခံသူသည် အိပ်စက်သွားသည့်အခါ သို့မဟုတ် အိပ်စက်ခြင်းမုဒ်သို့ ဝင်ရောက်သည့်အခါ သို့မဟုတ် အကြိမ်ရေနည်းပါးသောအချိန်များတွင် နာရီများနှေးကွေးသွားသည့် ကြိမ်နှုန်းခုန်ခြင်းကြောင့် နာရီအပြောင်းအလဲများကို လျော်ကြေးပေးနိုင်သည်။
  • ၎င်းသည် မတည်ငြိမ်သော ကွန်ရက်ချိတ်ဆက်မှု သို့မဟုတ် ကွန်ရက်ပိတ်နေခြင်းနှင့် ပတ်သက်သည့် အချိန်ပြဿနာများကို ဖြေရှင်းပေးသည်။
  • ၎င်းသည် ကွန်ရက်နှောင့်နှေးမှုများကို ထိန်းညှိပေးသည်။
  • ကနဦးအချိန်စင့်ခ်လုပ်ပြီးနောက်၊ Chrony သည် နာရီကို ဘယ်တော့မှ မရပ်တန့်ပါ။ ၎င်းသည် စနစ်ဝန်ဆောင်မှုများနှင့် အပလီကေးရှင်းများစွာအတွက် တည်ငြိမ်ပြီး တသမတ်တည်းရှိသော အချိန်များကို ပံ့ပိုးပေးပါသည်။
  • Chrony သည် ကွန်ရက်ချိတ်ဆက်မှုမရှိဘဲ အလုပ်လုပ်နိုင်သည်။ ဤကိစ္စတွင်၊ ဒေသခံအိမ်ရှင် သို့မဟုတ် ဆာဗာကို ကိုယ်တိုင်မွမ်းမံနိုင်ပါသည်။
  • Chrony သည် NTP ဆာဗာအဖြစ် လုပ်ဆောင်နိုင်သည်။

တစ်ဖန် NTP သည် Chrony သို့မဟုတ် systemd-timesyncd ကိုအသုံးပြု၍ Linux host တွင်အကောင်အထည်ဖော်နိုင်သော protocol တစ်ခုဖြစ်သည်။

NTP၊ Chrony နှင့် systemd-timesyncd RPM များကို စံ Fedora သိုလှောင်နေရာများတွင် ရနိုင်ပါသည်။ systemd-udev RPM သည် Fedora တွင် မူရင်းအတိုင်း ထည့်သွင်းထားသည့် kernel event manager တစ်ခုဖြစ်သော်လည်း ချန်လှပ်ထားသည်။

သုံးခုလုံးကို တပ်ဆင်ပြီး ၎င်းတို့ကြားတွင် ပြောင်းနိုင်သော်လည်း ၎င်းသည် ခေါင်းကိုက်မှုကို ပိုဖြစ်စေသည်။ ဒါကြောင့် မနေတာက ပိုကောင်းပါတယ်။ Fedora၊ CentOS နှင့် RHEL တို့၏ ခေတ်မီထုတ်ဝေမှုများသည် မူရင်းအကောင်အထည်ဖော်မှုအဖြစ် Chrony သို့ ပြောင်းရွှေ့ခဲ့ပြီး ၎င်းတို့တွင် systemd-timesyncd လည်းရှိသည်။ Chrony သည် ကောင်းမွန်စွာအလုပ်လုပ်ရန်၊ NTP ဝန်ဆောင်မှုထက် ပိုမိုကောင်းမွန်သောအင်တာဖေ့စ်ကို ပေးဆောင်ရန်၊ သတင်းအချက်အလက်နှင့် ထိန်းချုပ်မှုများစွာကို ပေးစွမ်းနိုင်သည်၊ မည်သည့်စနစ်စီမံခန့်ခွဲသူများသည် သေချာပေါက်နှစ်သက်မည်ဖြစ်သည်။

NTP ဝန်ဆောင်မှုများကို ပိတ်ခြင်း

NTP ဝန်ဆောင်မှုသည် သင့်အိမ်ရှင်တွင် လုပ်ဆောင်နေပြီဖြစ်နိုင်သည်။ သို့ဆိုလျှင်၊ အခြားတစ်ခုခုသို့ မပြောင်းမီ ၎င်းကို disable လုပ်ထားရန် လိုအပ်ပါသည်။ ကျွန်ုပ်တွင် chronyd လည်ပတ်နေသောကြောင့် ၎င်းကိုရပ်တန့်ရန်နှင့် disable လုပ်ရန် အောက်ပါ command များကိုအသုံးပြုခဲ့သည်။ သင့်အိမ်ရှင်တွင် သင်အသုံးပြုနေသည့် NTP daemon များအတွက် သင့်လျော်သော command များကို လုပ်ဆောင်ပါ-

[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 command သည် ဤအရာကို အရိပ်အမြွက်ပြလိမ့်မည်-

[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 အတွက် ဒေသစံတော်ချိန်ကို အသုံးပြုခြင်းနှင့်ပတ်သက်၍ သတိပေးချက်ကိုလည်း လက်ခံရရှိပါသည် - ၎င်းသည် အချိန်ဇုန်ပြောင်းလဲမှုများနှင့် DST ဆက်တင်များနှင့် သက်ဆိုင်ပါသည်။ အပြောင်းအလဲများပြုလုပ်ရန် လိုအပ်သည့်အခါ ကွန်ပျူတာကို ပိတ်ထားပါက RTC သည် ပြောင်းလဲမည်မဟုတ်ပါ။ ဒါပေမယ့် နာရီပတ်ပတ်လည်လည်ပတ်နေတဲ့ ဆာဗာတွေ ဒါမှမဟုတ် တခြားအိမ်ရှင်တွေအတွက်တော့ ဒါက ပြဿနာမရှိပါဘူး။ ထို့အပြင်၊ NTP time synchronization ကို ပံ့ပိုးပေးသည့် မည်သည့်ဝန်ဆောင်မှုမဆို ကနဦးစတင်သည့်အဆင့်တွင် လက်ခံဆောင်ရွက်ပေးသည့်အချိန်ကို ချိန်ညှိပေးမည်ဖြစ်သောကြောင့် စတင်မှုပြီးသည်နှင့် အချိန်သည် ပြန်လည်မှန်ကန်မည်ဖြစ်သည်။

အချိန်ဇုန်သတ်မှတ်ခြင်း။

အများအားဖြင့်၊ သင်သည် တပ်ဆင်ခြင်းလုပ်ငန်းစဉ်အတွင်း အချိန်ဇုန်ကို သတ်မှတ်ပေးထားပြီး နောက်ပိုင်းတွင် ၎င်းကို ပြောင်းလဲရန် တာဝန်မရှိပါ။ သို့သော် အချိန်ဇုန်ကို ပြောင်းလဲရန် လိုအပ်သည့်အချိန်များရှိသည်။ ကူညီပေးနိုင်တဲ့ ကိရိယာများစွာရှိပါတယ်။ Linux သည် host တစ်ခု၏ ဒေသစံတော်ချိန်ကို ဆုံးဖြတ်ရန် အချိန်ဇုန်ဖိုင်များကို အသုံးပြုသည်။ ဤဖိုင်များသည် လမ်းညွှန်ထဲတွင် ရှိနေသည်။ /usr/share/zoneinfo. ပုံမှန်အားဖြင့်၊ ကျွန်ုပ်၏စံတော်ချိန်ဇုန်အတွက်၊ စနစ်က ဤအရာကို သတ်မှတ်သည်- /etc/localtime -> ../usr/share/zoneinfo/America/New_York. ဒါပေမယ့် အချိန်ဇုန်ကို ပြောင်းလဲဖို့အတွက် ဒီလိုအသေးစိတ်အချက်တွေကို သင်သိဖို့ မလိုအပ်ပါဘူး။

အဓိကအချက်မှာ သင့်တည်နေရာအတွက်တရားဝင်အချိန်ဇုန်အမည်နှင့် သက်ဆိုင်သည့်အမိန့်ကို သိရန်ဖြစ်သည်။ အချိန်ဇုန်ကို Los Angeles သို့ပြောင်းလိုသည်ဆိုကြပါစို့။


[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>

ယခုသင်အချိန်ဇုန်သတ်မှတ်နိုင်သည်။ ပြောင်းလဲမှုများကို စစ်ဆေးရန် ရက်စွဲအမိန့်ကို ကျွန်ုပ်အသုံးပြုခဲ့သည်၊ သို့သော် သင်သည် timedatectl ကို အသုံးပြုနိုင်သည်။

[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 daemon သည် systemd context တွင်စီမံခန့်ခွဲရန်လွယ်ကူသော NTP အကောင်အထည်ဖော်မှုကိုပေးသည်။ ၎င်းကို Fedora နှင့် Ubuntu တွင် မူရင်းအတိုင်း ထည့်သွင်းထားသည်။ သို့သော် Ubuntu တွင်မူလအတိုင်းသာစတင်သည်။ အခြားသော ဖြန့်ချီမှုများအကြောင်း ကျွန်ုပ် မသေချာပါ။ သင်ကိုယ်တိုင် စစ်ဆေးနိုင်သည်-

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

systemd-timesyncd ကို စီစဉ်သတ်မှတ်ခြင်း။

systemd-timesyncd အတွက် configuration file သည် /etc/systemd/timesyncd.conf. ၎င်းသည် ယခင် NTP နှင့် chronyd ဝန်ဆောင်မှုများထက် ရွေးချယ်ခွင့်နည်းပါးသော ရိုးရှင်းသောဖိုင်တစ်ခုဖြစ်သည်။ ဤသည်မှာ ကျွန်ုပ်၏ Fedora VM ရှိ ဤဖိုင်၏ အကြောင်းအရာများ (နောက်ထပ် ပြုပြင်မွမ်းမံခြင်းမရှိဘဲ)

#  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 ဝန်ဆောင်မှုသည် အချိန်တံဆိပ်ပေါ်တွင် အခြေခံ၍ စနစ်အချိန်ကို သတ်မှတ်ပေးသည်။ အချိန်တံဆိပ်တုံးများကို timesync daemon မှ ထိန်းသိမ်းထားပြီး အောင်မြင်သော ထပ်တူကျမှုတိုင်းတွင် ဖန်တီးထားသည်။

timedatectl command သည် system clock မှ hardware clock ၏တန်ဖိုးကိုယူရန်နည်းလမ်းမရှိပါ။ ၎င်းသည် command line တွင်ထည့်သွင်းထားသောတန်ဖိုးမှအချိန်နှင့်ရက်စွဲကိုသာသတ်မှတ်နိုင်သည်။ 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 option သည် UTC မဟုတ်ဘဲ ဒေသစံတော်ချိန်ကို ပြသရန် ဟာ့ဒ်ဝဲနာရီကို ပြောပြသည်။

အဘယ်ကြောင့် RTC လုံးဝလိုအပ်သနည်း။

NTP ကို ​​အကောင်အထည်ဖော်မှုတိုင်းသည် စတင်ချိန်၌ စနစ်နာရီကို သတ်မှတ်ပေးမည်ဖြစ်သည်။ ဒါဆို RTC က ဘာကြောင့်လဲ။ ၎င်းသည် လုံးဝမမှန်ပါ- သင့်တွင် အချိန်ဆာဗာသို့ ကွန်ရက်ချိတ်ဆက်မှုရှိမှသာ ၎င်းသည် ဖြစ်ပေါ်လာမည်ဖြစ်သည်။ သို့သော်၊ စနစ်များစွာသည် ကွန်ရက်ချိတ်ဆက်မှုသို့ အမြဲတမ်းဝင်ရောက်ခွင့်မရှိသောကြောင့်၊ စနစ်အချိန်ကိုသတ်မှတ်ရန် Linux အတွက် ဟာ့ဒ်ဝဲနာရီသည် အသုံးဝင်သည်။ ၎င်းသည် အချိန်နှင့်တပြေးညီ လွဲသွားသော်လည်း ၎င်းသည် အချိန်ကို ကိုယ်တိုင်သတ်မှတ်ခြင်းထက် ပိုမိုကောင်းမွန်သည်။

ကောက်ချက်

ဤဆောင်းပါးသည် ရက်စွဲ၊ အချိန်နှင့် အချိန်ဇုန်များကို ကြိုးကိုင်ရန်အတွက် ကိရိယာအချို့ကို ပြန်လည်သုံးသပ်ထားသည်။ systemd-timesyncd tool သည် NTP server နှင့် local host ပေါ်ရှိအချိန်ကို ထပ်တူပြုနိုင်သည့် NTP client ကို ပံ့ပိုးပေးပါသည်။ သို့သော်၊ systemd-timesyncd သည် ဆာဗာဝန်ဆောင်မှုကို မပေးသောကြောင့် သင့်ကွန်ရက်တွင် NTP ဆာဗာတစ်ခု လိုအပ်ပါက၊ ဆာဗာတစ်ခုအဖြစ် လုပ်ဆောင်ရန် Chrony ကဲ့သို့သော အခြားတစ်ခုခုကို အသုံးပြုရပါမည်။

ကျွန်ုပ်၏ကွန်ရက်ပေါ်ရှိ မည်သည့်ဝန်ဆောင်မှုအတွက်မဆို အကောင်အထည်ဖော်မှုတစ်ခုတည်းကို နှစ်သက်သောကြောင့် Chrony ကို အသုံးပြုပါသည်။ သင်ဒေသခံ NTP ဆာဗာကို မလိုအပ်ပါက သို့မဟုတ် Chrony ဆာဗာအဖြစ် အသုံးပြုရန်နှင့် SNTP ကလိုင်းယင့်အဖြစ် စနစ်ဖြင့်ချိန်ကိုက်ခြင်းကို စိတ်မ၀င်စားပါက၊ systemd-timesyncd ၏လုပ်ဆောင်နိုင်စွမ်းကို ကျေနပ်ပါက၊ client တစ်ခုအနေဖြင့် Chrony ၏နောက်ထပ်အင်္ဂါရပ်များကို အသုံးပြုရန်မလိုအပ်ပါ။

အခြားမှတ်ချက်- NTP ကိုအကောင်အထည်ဖော်ရန်အတွက် သင်သည် စနစ်သုံးကိရိယာများကို အသုံးပြုရန် မလိုအပ်ပါ။ သင်သည် ntpd၊ Chrony သို့မဟုတ် အခြားသော NTP အကောင်အထည်ဖော်မှု၏ ဗားရှင်းအဟောင်းကို သင်သုံးနိုင်သည်။ နောက်ဆုံးတွင်၊ systemd တွင် ၀ န်ဆောင်မှုအများအပြားပါ ၀ င်သည်။ ၎င်းတို့အများစုသည် ရွေးချယ်နိုင်သောကြောင့် ၎င်းတို့ကို ပိတ်ပြီး အခြားတစ်ခုခုကို အသုံးပြုနိုင်သည်။ ၎င်းသည် ကြီးမားသော တစ်ခုတည်းသော နဂါးကြီးမဟုတ်ပါ။ systemd သို့မဟုတ် အစိတ်အပိုင်းများကို သင်မကြိုက်နိုင်သော်လည်း အသိဥာဏ်ဖြင့် ဆုံးဖြတ်ချက်ချသင့်သည်။

systemd ၏ NTP ကို ​​အကောင်အထည်ဖော်ခြင်းကို နှစ်သက်သော်လည်း၊ ၎င်းသည် ကျွန်ုပ်၏လိုအပ်ချက်များနှင့် ပိုကိုက်ညီသောကြောင့် Chrony ကို ပိုနှစ်သက်ပါသည်။ အဲဒါ Linux ပဲ၊ ကလေး-)

ကြော်ငြာအဖြစ်

VDSina ကမ်းလှမ်းချက် မည်သည့်အလုပ်အတွက်မဆို ဆာဗာများအလိုအလျောက်တပ်ဆင်ခြင်းအတွက် ကြီးမားသောရွေးချယ်မှုဖြစ်သည့် Operating System အမျိုးအစားဖြစ်ပြီး မည်သည့် OS ကိုမဆို သင့်ကိုယ်ပိုင်မှ ထည့်သွင်းနိုင်သည်။ ISO ကိုအဆင်ပြေတယ်။ ထိန်းချုပ်ရာနေရာ ကိုယ်ပိုင်ဖွံ့ဖြိုးတိုးတက်မှုနှင့်နေ့စဉ်ငွေပေးချေမှု။ ကျွန်ုပ်တို့တွင် အချိန်မကုန်နိုင်သော ထာဝရဆာဗာများရှိကြောင်း သတိရပါ။

Linux Time Synchronization- NTP၊ Chrony နှင့် systemd-timesyncd

source: www.habr.com

မှတ်ချက် Add