Linux Time Synchronization: NTP, Chrony සහ systemd-timesyncd

Linux Time Synchronization: NTP, Chrony සහ systemd-timesyncd
බොහෝ අය කාලය නිරීක්ෂණය කරති. අපි අපේ උදෑසන චාරිත්‍ර අවසන් කර රැකියාවට යාම, දිවා ආහාර විවේකයක් ගැනීම, ව්‍යාපෘති කාලසීමාවන් සපුරාලීම, උපන් දින සහ නිවාඩු දින සැමරීම, ගුවන් යානයකට ගොඩවීම යනාදිය සඳහා අපි නියමිත වේලාවට නැගිටින්නෙමු.

එපමණක්ද නොව: අපගෙන් සමහරෙකු කාලය සමඟ උමතු වී ඇත. මගේ ඔරලෝසුව සූර්ය ශක්තියෙන් බල ගැන්වෙන අතර ජාතික ප්‍රමිති හා තාක්ෂණ ආයතනයෙන් (NIST) දිගු තරංග රේඩියෝව හරහා කොලරාඩෝ හි ෆෝට් කොලින්ස් වෙත ඩබ්ලිව්ඩබ්ලිව්වීබී. ෆෝට් කොලින්ස්හි ද පිහිටා ඇති පරමාණුක ඔරලෝසුව සමඟ කාල සංඥා සමමුහුර්ත කර ඇත. මගේ Fitbit සේවාදායකය සමඟ සමමුහුර්ත වන මගේ දුරකථනය සමඟ සමමුහුර්ත වේ එන්ටීපී, අවසානයේ පරමාණුක ඔරලෝසුව සමඟ සමමුහුර්ත වේ.

උපාංග කාලය ද නිරීක්ෂණය කරයි

අපගේ උපාංග සහ පරිගණක සඳහා නිවැරදි කාලය අවශ්‍ය වීමට බොහෝ හේතු තිබේ. උදාහරණයක් ලෙස, බැංකු, කොටස් වෙලඳපොලවල් සහ අනෙකුත් මුල්‍ය ව්‍යාපාර වල ගණුදෙණු නිසි පිළිවෙළට සිදු කළ යුතු අතර නිවැරදි කාල අනුපිළිවෙල මේ සඳහා ඉතා වැදගත් වේ.

අපගේ දුරකථන, ටැබ්ලට්, කාර්, ජීපීඑස් පද්ධති සහ පරිගණක සියල්ලටම නිවැරදි වේලාව සහ දින සැකසුම් අවශ්‍ය වේ. මගේ පරිගණකයේ ඩෙස්ක්ටොප් එකේ ඔරලෝසුව නිවැරදි වෙලාව පෙන්වීමට මට අවශ්‍යයි. මට සිහිකැඳවීම් නියම වේලාවට මගේ දේශීය දින දර්ශනයේ දිස් වීමට අවශ්‍යයි. නිවැරදි වේලාව මඟින් ක්‍රෝන් සහ සිස්ටම්ඩ් රැකියා නිවැරදි වේලාවට ක්‍රියාත්මක වන බව සහතික කරයි.

ලොග් වීම සඳහා දිනය සහ වේලාව ද වැදගත් වේ, එබැවින් දිනය සහ වේලාව මත පදනම්ව ඇතැම් ලඝු-සටහන් සොයා ගැනීම ටිකක් පහසු වේ. උදාහරණයක් ලෙස, මම වරක් DevOps හි සේවය කළෙමි (එකල එය එසේ හැඳින්වූයේ නැත) සහ උතුරු කැරොලිනා ප්‍රාන්තයේ විද්‍යුත් තැපැල් පද්ධතියක් සකසමින් සිටියෙමි. අපි දිනකට ඊමේල් මිලියන 20කට අධික ප්‍රමාණයක් සැකසීමට පුරුදුව සිටියෙමු. සර්වර් මාලාවක් හරහා විද්‍යුත් තැපෑල ලුහුබැඳීම, හෝ භූගෝලීය වශයෙන් විසිරී ඇති ධාරකවල ලොග් ගොනු භාවිතයෙන් සිදුවීම්වල නිශ්චිත අනුපිළිවෙල නිර්ණය කිරීම, අදාළ පරිගණක නියමිත වේලාවට සමමුහුර්ත කර ඇත්නම් වඩාත් පහසු විය හැක.

එක් වරක් - බොහෝ පැය

පද්ධති වේලාවක් සහ RTC වේලාවක් ඇති බව ලිනක්ස් ධාරක විසින් සැලකිල්ලට ගත යුතුය. RTC (Real Time Clock) යනු දෘඪාංග ඔරලෝසුවක් සඳහා තරමක් අමුතු හා ඉතා නිවැරදි නමකි.

දෘඪාංග ඔරලෝසුව පරිගණකය ක්‍රියා විරහිත කර තිබියදීත්, පද්ධතියේ මවු පුවරුවේ ඇති බැටරිය භාවිතයෙන් අඛණ්ඩව ක්‍රියාත්මක වේ. RTC හි ප්‍රධාන කාර්යය වන්නේ කාල සේවාදායකයකට සම්බන්ධතාවයක් නොමැති විට කාලය ගබඩා කිරීමයි. අන්තර්ජාලය හරහා කාල සේවාදායකයකට සම්බන්ධ වීමට නොහැකි වූ දිනවල සෑම පරිගණකයකම නිවැරදි අභ්‍යන්තර ඔරලෝසුවක් තිබිය යුතුය. මෙහෙයුම් පද්ධති ආරම්භයේදී RTC වෙත ප්‍රවේශ විය යුතු අතර පරිශීලකයාට එය නිවැරදි බව තහවුරු කර ගැනීම සඳහා BIOS දෘඪාංග වින්‍යාස අතුරුමුහුණත භාවිතයෙන් පද්ධති වේලාව අතින් සැකසීමට සිදු විය.

දෘඪාංග ඔරලෝසු කාල කලාප පිළිබඳ සංකල්පය තේරුම් නොගනී; RTC ගබඩා කරන්නේ කාලය පමණක් මිස UTC වෙතින් කාල කලාපය හෝ ඕෆ්සෙට් නොවේ (සම්බන්ධිත විශ්ව වේලාව, GMT හෝ ග්‍රීන්විච් මධ්‍යන්‍ය වේලාව ලෙසද හැඳින්වේ). මම මෙම ලිපියෙන් පසුව ආවරණය කරන මෙවලමක් භාවිතයෙන් ඔබට RTC ස්ථාපනය කළ හැකිය.

පද්ධති වේලාව යනු ඔබගේ ඩෙස්ක්ටොප් එකේ GUI ඔරලෝසුව මත, දින විධානයේ ප්‍රතිදානයේ, ලොග් වල වේලා මුද්‍රා වල OS සංදර්ශණය වන කාලයයි. ගොනු සාදන විට, වෙනස් කරන විට සහ විවෘත කරන විටද මෙය අදාළ වේ.

පිටුවේ rtc සඳහා මිනිසා RTC සහ පද්ධති ඔරලෝසුව පිළිබඳ සම්පූර්ණ විස්තරයක් ඇත.

NTP සමඟ ඇත්තේ කුමක්ද?

ලොව පුරා පරිගණක NTP සේවාදායක ධුරාවලියක් භාවිතයෙන් අන්තර්ජාලය හරහා සම්මත යොමු ඔරලෝසු සමඟ ඔවුන්ගේ කාලය සමමුහුර්ත කිරීමට NTP (ජාල කාල ප්‍රොටෝකෝලය) භාවිතා කරයි. ප්‍රධාන කාල සේවාදායකයන් 1 වන ස්ථරයේ ඇති අතර ඒවා සැටලයිට්, රේඩියෝ හෝ මොඩම හරහා දුරකථන මාර්ග හරහා 0 ස්ථරයේ විවිධ ජාතික කාල සේවා වෙත සෘජුවම සම්බන්ධ වේ. Layer 0 time service යනු පරමාණුක ඔරලෝසුවක්, පරමාණුක ඔරලෝසු මගින් සම්ප්‍රේෂණය වන සංඥා වලට සුසර කරන රේඩියෝ ග්‍රාහකයක් හෝ GPS චන්ද්‍රිකා මගින් සම්ප්‍රේෂණය වන ඉතා නිවැරදි ඔරලෝසු සංඥා භාවිතා කරන GPS ග්‍රාහකයක් විය හැක.

යොමු සේවාදායකයන්ගෙන් අතිමහත් බහුතරයක් පොදු NTP ස්ථර 2 සේවාදායකයන් දහස් ගණනක් මහජනතාවට විවෘත කර ඇත. NTP සේවාදායකයක් අවශ්‍ය බොහෝ ධාරකයන් සමඟ බොහෝ සංවිධාන සහ පරිශීලකයින් (මමත් ඇතුළුව) තමන්ගේම කාල සේවාදායකයක් සැකසීමට තෝරා ගන්නා අතර එමඟින් එක් ප්‍රාදේශීය සත්කාරකයෙකු පමණක් ස්ථර 2 හෝ 3 වෙත ප්‍රවේශ වේ. පසුව ඔවුන් දේශීය භාවිතා කිරීමට ජාලයේ ඉතිරි නෝඩ් වින්‍යාස කරයි. කාල සේවාදායකය . මගේ නිවසේ ජාලය සම්බන්ධයෙන් ගත් කල, මෙය ස්ථර 3 සේවාදායකයකි.

NTP හි විවිධ ක්‍රියාත්මක කිරීම්

NTP හි මුල් ක්‍රියාත්මක කිරීම ntpd වේ. ඊට පසුව chronyd සහ systemd-timesyncd යන අලුත් ඒවා දෙකක් එකතු විය. තුනම දේශීය ධාරක කාලය NTP කාල සේවාදායකයක් සමඟ සමමුහුර්ත කරයි. systemd-timesyncd සේවාව chronyd තරම් විශ්වාසදායක නොවේ, නමුත් එය බොහෝ අරමුණු සඳහා ප්‍රමාණවත් වේ. RTC සමමුහුර්ත වී නොමැති නම්, එය දේශීය පද්ධති කාලය මදක් ප්ලාවනය වන විට NTP සේවාදායකය සමඟ සමමුහුර්ත කිරීමට පද්ධති කාලය ක්‍රමයෙන් සකස් කළ හැක. systemd-timesync සේවාව කාල සේවාදායකයක් ලෙස භාවිතා කළ නොහැක.

Chrony යනු වැඩසටහන් දෙකක් අඩංගු NTP ක්‍රියාවට නැංවීමකි: chronyd daemon සහ chronyc නම් විධාන රේඛා අතුරුමුහුණත. Chrony බොහෝ අවස්ථා වලදී අත්‍යවශ්‍ය වන සමහර විශේෂාංග ඇත:

  • Chrony හට පැරණි ntpd සේවාවට වඩා වේගයෙන් කාල සේවාදායකයක් සමඟ සමමුහුර්ත කළ හැක. මෙය සැමවිටම ක්‍රියා නොකරන ලැප්ටොප් හෝ ඩෙස්ක්ටොප් සඳහා හොඳය.
  • ධාරකය නින්දට යන විට හෝ නිද්‍රා ප්‍රකාරයට ඇතුළු වන විට, හෝ අඩු බරකදී ඔරලෝසු වේගය අඩු කරන සංඛ්‍යාත පැනීම හේතුවෙන් ඔරලෝසුව වෙනස් වන විට, ඔරලෝසු උච්චාවචනයන් සඳහා එය වන්දි ගෙවිය හැකිය.
  • එය අස්ථායී ජාල සම්බන්ධතාවය හෝ ජාල තදබදය සම්බන්ධ කාල ගැටළු විසඳයි.
  • එය ජාල ප්‍රමාදයන් නියාමනය කරයි.
  • ආරම්භක වේලාව සමමුහුර්ත කිරීමෙන් පසුව, Chrony කිසි විටෙකත් ඔරලෝසුව නතර නොකරයි. මෙය බොහෝ පද්ධති සේවා සහ යෙදුම් සඳහා ස්ථාවර සහ ස්ථාවර කාල සීමාවන් සපයයි.
  • ජාල සම්බන්ධතාවයක් නොමැතිව වුවද Chrony හට වැඩ කළ හැක. මෙම අවස්ථාවේදී, දේශීය සත්කාරක හෝ සේවාදායකය අතින් යාවත්කාලීන කළ හැක.
  • Chrony හට NTP සේවාදායකයක් ලෙස ක්‍රියා කළ හැක.

නැවත වරක්, NTP යනු Chrony හෝ systemd-timesyncd භාවිතයෙන් Linux සත්කාරකයක් මත ක්‍රියාත්මක කළ හැකි ප්‍රොටෝකෝලයකි.

NTP, Chrony, සහ systemd-timesyncd RPMs සම්මත Fedora ගබඩාවල ඇත. systemd-udev RPM යනු Fedora හි පෙරනිමියෙන් ස්ථාපනය කර ඇති කර්නල් සිදුවීම් කළමනාකරුවකි, නමුත් එය විකල්ප නොවේ.

ඔබට තුනම ස්ථාපනය කර ඒවා අතර මාරු කළ හැකිය, නමුත් මෙය අතිරේක හිසරදයක් ඇති කරයි. ඒ නිසා එහෙම නොකර ඉන්න එක හොඳයි. 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 වේලාව සඳහා දේශීය වේලාව ලබා දෙනු ඇත. මෙම අවස්ථාවෙහිදී, පද්ධති වේලාව ඇමරිකාව / New_York (TZ) වේලා කලාපයට සකසා ඇත, RTC දේශීය වේලා කලාපයේ වේලාවට සකසා ඇති අතර NTP සේවාව සක්‍රීය නොවේ. RTC වේලාව පද්ධති වේලාවෙන් තරමක් අපගමනය වීමට පටන් ගෙන ඇත. ඔරලෝසු සමමුහුර්ත කර නොමැති පද්ධති සඳහා මෙය සාමාන්‍ය දෙයකි. පද්ධතිය අවසන් වරට සමමුහුර්ත කළ දින සිට ගත වූ කාලය මත ධාරකයෙහි ඕෆ්සෙට් ප්‍රමාණය රඳා පවතී.

RTC සඳහා දේශීය වේලාව භාවිතා කිරීම ගැන අපට අනතුරු ඇඟවීමක් ද ලැබුණි - මෙය වේලා කලාප වෙනස් කිරීම් සහ DST සැකසීම් සඳහා අදාළ වේ. වෙනස්කම් සිදු කිරීමට අවශ්ය විට පරිගණකය අක්රිය කර ඇත්නම්, RTC වෙනස් නොවේ. නමුත් පැය XNUMX පුරාම ක්‍රියාත්මක වන සේවාදායකයන් හෝ වෙනත් සත්කාරක සඳහා මෙය කිසිසේත්ම ගැටලුවක් නොවේ. මීට අමතරව, NTP කාල සමමුහුර්තකරණය සපයන ඕනෑම සේවාවක් ආරම්භක ආරම්භක අදියරේදී ධාරකයාගේ කාලය සකසනු ඇත, එබැවින් ආරම්භය සම්පූර්ණ වූ පසු, කාලය නැවත නිවැරදි වනු ඇත.

කාල කලාපය සැකසීම

සාමාන්‍යයෙන්, ඔබ ස්ථාපන ක්‍රියාවලියේදී කාල කලාපය සඳහන් කරන අතර පසුව එය වෙනස් කිරීමේ කාර්යය ඔබට නොමැත. කෙසේ වෙතත්, ඔබට කාල කලාපය වෙනස් කිරීමට අවශ්ය වන අවස්ථා තිබේ. උපකාර කළ හැකි මෙවලම් කිහිපයක් තිබේ. Linux ධාරකයක දේශීය වේලා කලාපය තීරණය කිරීමට වේලා කලාප ගොනු භාවිතා කරයි. මෙම ගොනු නාමාවලියෙහි ඇත /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>

දැන් ඔබට කාල කලාපය සැකසිය හැක. වෙනස්කම් සඳහා පරීක්ෂා කිරීමට මම දිනය විධානය භාවිතා කළෙමි, නමුත් ඔබට 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 සන්දර්භය තුළ කළමනාකරණය කිරීමට පහසු NTP ක්‍රියාත්මක කිරීමක් සපයයි. එය Fedora සහ Ubuntu මත පෙරනිමියෙන් ස්ථාපනය කර ඇත. කෙසේ වෙතත්, එය Ubuntu මත පෙරනිමියෙන් පමණක් ආරම්භ වේ. වෙනත් බෙදාහැරීම් ගැන මට විශ්වාස නැත. ඔබට ඔබම පරීක්ෂා කළ හැකිය:

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

systemd-timesyncd වින්‍යාස කිරීම

systemd-timesyncd සඳහා වන වින්‍යාස ගොනුව වේ /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 විධානයට පද්ධති ඔරලෝසුවෙන් දෘඪාංග ඔරලෝසුවේ අගය ගැනීමට ක්‍රමයක් නොමැත. එය විධාන රේඛාවේ ඇතුළත් කළ අගයෙන් පමණක් වේලාව සහ දිනය සැකසිය හැක. 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? මෙය සම්පූර්ණයෙන්ම සත්‍ය නොවේ: මෙය සිදු වන්නේ ඔබට කාල සේවාදායකයට ජාල සම්බන්ධතාවයක් තිබේ නම් පමණි. කෙසේ වෙතත්, බොහෝ පද්ධතිවලට සැමවිටම ජාල සම්බන්ධතාවයකට ප්‍රවේශය නොමැත, එබැවින් පද්ධති වේලාව සැකසීමට Linux භාවිතා කිරීමට දෘඪාංග ඔරලෝසුවක් ප්‍රයෝජනවත් වේ. මෙය තථ්‍ය කාලයෙන් බැහැර විය හැකි වුවද, අතින් වේලාව සැකසීමට වඩා හොඳය.

නිගමනය

මෙම ලිපියේ දිනය, වේලාව සහ වේලා කලාප හැසිරවීම සඳහා මෙවලම් කිහිපයක් සමාලෝචනය කර ඇත. systemd-timesyncd මෙවලම දේශීය ධාරකයේ කාලය NTP සේවාදායකයක් සමඟ සමමුහුර්ත කළ හැකි NTP සේවාලාභියෙකු සපයයි. කෙසේ වෙතත්, systemd-timesyncd සේවාදායක සේවාවක් සපයන්නේ නැත, එබැවින් ඔබට ඔබේ ජාලයේ NTP සේවාදායකයක් අවශ්‍ය නම්, ඔබ සේවාදායකයක් ලෙස ක්‍රියා කිරීමට Chrony වැනි වෙනත් දෙයක් භාවිතා කළ යුතුය.

මම මගේ ජාලයේ ඕනෑම සේවාවක් සඳහා තනි ක්‍රියාත්මක කිරීමට කැමැත්තෙමි, එබැවින් මම Chrony භාවිතා කරමි. ඔබට දේශීය NTP සේවාදායකයක් අවශ්‍ය නොවන්නේ නම්, හෝ ඔබට Chrony සේවාදායකය ලෙස භාවිතා කිරීම සහ systemd-timesyncd SNTP සේවාලාභියා ලෙස භාවිතා කිරීම ප්‍රශ්නයක් නොවේ නම්. සියල්ලට පසු, ඔබ systemd-timesyncd හි ක්‍රියාකාරීත්වය ගැන සෑහීමකට පත්වන්නේ නම්, Crony හි අමතර විශේෂාංග සේවාලාභියෙකු ලෙස භාවිතා කිරීමට අවශ්‍ය නොවේ.

තවත් සටහනක්: ඔබ NTP ක්‍රියාත්මක කිරීමට systemd මෙවලම් භාවිතා කිරීමට අවශ්‍ය නොවේ. ඔබට ntpd, Chrony, හෝ වෙනත් NTP ක්‍රියාත්මක කිරීමේ පැරණි අනුවාදයක් භාවිතා කළ හැක. සියල්ලට පසු, systemd විශාල සේවා ගණනකින් සමන්විත වේ; ඒවායින් බොහොමයක් විකල්ප වේ, එබැවින් ඔබට ඒවා ක්‍රියා විරහිත කර ඒ වෙනුවට වෙනත් දෙයක් භාවිතා කළ හැක. මෙය විශාල මොනොලිතික් රාක්ෂයෙක් නොවේ. ඔබ systemd හෝ එහි කොටස් වලට අකමැති විය හැක, නමුත් ඔබ දැනුවත් තීරණයක් ගත යුතුය.

මම systemd විසින් NTP ක්‍රියාත්මක කිරීමට කැමතියි, නමුත් එය මගේ අවශ්‍යතාවයට වඩාත් ගැලපෙන නිසා මම Chrony වලට කැමතියි. ඒක ලිනක්ස්, බබා -)

දැන්වීම් ප්රචාරණ අයිතිවාසිකම්

VDSina පිරිනැමේ ඕනෑම කාර්යයක් සඳහා සේවාදායකයන්, ස්වයංක්රීය ස්ථාපනය සඳහා මෙහෙයුම් පද්ධති විශාල තේරීමක්, එය ඔබගේම සිට ඕනෑම OS ස්ථාපනය කිරීමට හැකි වේ ISO, සුවපහසු පාලක පැනලය තමන්ගේම සංවර්ධනය සහ දෛනික ගෙවීම. නියත වශයෙන්ම කාලානුරූපී වන සදාකාලික සේවාදායකයන් අප සතුව ඇති බව මතක තබා ගන්න

Linux Time Synchronization: NTP, Chrony සහ systemd-timesyncd

මූලාශ්රය: www.habr.com

අදහස් එක් කරන්න