
Shumica e njerëzve ndjekin kohën. Ne zgjohemi në kohën e duhur për të kryer ritualet tona të mëngjesit dhe për t'iu drejtuar punës, për të bërë një pushim për drekë, për të përmbushur afatet e projekteve, për të festuar ditëlindjet dhe festat, për të hipur në avion dhe kështu me radhë.
Për më tepër, disa nga ne janë të obsesionuar pas kohës. Orët e mia ushqehen me energji diellore dhe marrin kohën e saktë nga Instituti Kombëtar i Standardeve dhe Teknologjisë () në Fort Collins (Colorado) përmes një stacioni të gjatë valëzimi . Sinjalet e kohës sinkronizohen me orët atomike, gjithashtu të vendosura në Fort Collins. Fitbit-i im sinkronizohet me telefonin tim, i cili sinkronizohet me serverin , i cili në fund sinkronizohet me orët atomike.
Pajisjet gjithashtu ndjekin kohën.
Ka shumë arsye për të cilat pajisjet dhe kompjuterët tanë kanë nevojë për kohë të saktë. Për shembull, në sektorin bankar, në tregjet financiare dhe në biznese të tjera financiare, transaksionet duhet të kryhen në radhë të duhur, dhe për këtë janë kritike kemi nevojë për sekuenca kohore të sakta.
Telefonat, tabletet, makinat, sistemet GPS dhe kompjuterët tanë kërkojnë një rregullim të saktë të kohës dhe datës. Dua që ora në desktopin tim të kompjuterit të tregojë kohën e saktë. Dua që në kalendarin tim lokal, kujtesat të shfaqen në kohën e duhur. Koha e saktë gjithashtu garanton që detyrat cron dhe systemd të startojnë në kohën e duhur.
Data dhe koha gjithashtu janë të rëndësishme për mbajtjen e regjistrave, kështu që është më e lehtë të gjejmë disa regjistra, duke u orientuar sipas datës dhe kohës. Për shembull, një herë punoja në DevOps (atëherë nuk e quanim ashtu) dhe merresha me konfigurimin e sistemit të postës elektronike në shtetin e Karolinës së Veriut. Më parë, ne përpunonim më shumë se 20 milion mesazhe në ditë. Ndjekja e postës elektronike përmes një serie serverësh ose përcaktimi i rendit të saktë të ngjarjeve duke përdorur skedarë regjistrash në hoste gjeografikisht të shpërndara mund të jetë shumë më e lehtë nëse kompjuterët përkatës janë të sinkronizuar në kohë.
Koha është një - orët janë të shumta
Hostet Linux duhet tĂ« kenĂ« parasysh se ekziston koha sistemike dhe koha RTC. RTC (Clock Real Time â ora e vĂ«rtetĂ«) Ă«shtĂ« njĂ« emĂ«r pak i çuditshĂ«m dhe jo shumĂ« i saktĂ« pĂ«r orĂ«t harduerike.
Orët harduerike punojnë vazhdimisht, edhe kur kompjuteri është i fikur, duke përdorur një bateri në pllakën e nënës së sistemit. Funksioni kryesor i RTC është ruajtja e kohës kur lidhja me serverin e kohës nuk është e disponueshme. Në ato kohë kur nuk ishte e mundur të lidhej me serverin e kohës përmes internetit, çdo kompjuter duhej të kishte orë të brendshme të sakta. Sistemet operative duhej të kontaktonin RTC gjatë ngarkimit dhe përdoruesi duhej të vendoste manualisht kohën sistemike duke përdorur ndërfaqen harduerike të konfigurimit BIOS, për t'u siguruar që ajo ishte e saktë.
Orët harduerike nuk e kuptojnë konceptin e zona të kohës; në RTC ruhet vetëm koha, jo zona e kohës apo devijimi nga UTC (Koha e koordinuar botërore, e njohur gjithashtu si GMT ose koha mesatare në Greenwich). Ju mund ta vendosni RTC-në me një mjet, për të cilin do të flas më vonë në këtë artikull.
Koha sistemore është koha që OS e shfaq në orën GUI në desktopin tuaj, në të dhënat e komandës date, në etiketat e kohës së regjistrave. Kjo gjithashtu i referohet kohës së krijimit, ndryshimeve dhe hapjes së skedave.
Në faqe ka një përshkrim të plotë të RTC dhe orëve sistemore.
ĂfarĂ« ka pĂ«r NTP?
Kompjuterët në të gjithë botën përdorin NTP (protokolli i rrjetit të kohës) për të sinkronizuar kohën e tyre me orët standarde referencë përmes internetit duke përdorur një hierarki serverash NTP. Serverat kryesorë të kohës janë në nivelin 1, dhe ata janë të lidhur drejtpërdrejt me shërbimet e ndryshme kombëtare të kohës në nivelin 0 përmes satelitit, radios ose madje modemëve përmes linjave telefonike. Shërbimet e kohës në nivelin 0 mund të jenë orë atomike, një receptor radio që është i caktuar për sinjalet e transmetuara nga orët atomike, ose një receptor GPS që përdor sinjale shumë të sakta orari të transmetuara nga satelitët GPS.
Në shumicën dërrmuese të serverëve referencë janë të hapura disa mijëra serverë publikë NTP stratum 2, të cilat janë në dispozicion për të gjithë. Shumë organizata dhe përdorues (përfshirë edhe mua) me një numër të madh hostesh që kanë nevojë për një server NTP, preferojnë të vendosin serverët e tyre të kohës, kështu që vetëm një host lokal i drejtohet stratum 2 ose 3. Më pas ata konfigurojnë nodet e mbetura në rrjet për të përdorur serverin lokal të kohës. Në rastin e rrjetit tim shtëpiak, ky është një server i nivelit 3.
Zbatime të ndryshme të NTP
Zbatimi origjinal i NTP është ntpd. Më pas, dy të tjera të reja janë bashkuar, chronyd dhe systemd-timesyncd. Të treja sinkronizojnë kohën e hostit lokal me serverin e kohës NTP. Shërbimi systemd-timesyncd nuk është aq i besueshëm sa chronyd, por është i mjaftueshëm për shumicën e qëllimeve. Nëse RTC nuk është sinkronizuar, ai mund të rregullojë gradualisht kohën sistemike për t'u sinkronizuar me serverin NTP, kur koha lokale e sistemit është pak e devijuar. Shërbimi systemd-timesync nuk mund të përdoret si server kohe.
â Ă«shtĂ« njĂ« implementim i NTP-sĂ«, qĂ« pĂ«rmban dy programe: demonin chronyd dhe njĂ« ndĂ«rfaqe komandash tĂ« quajtur chronyc. Chrony ka disa funksione qĂ« nĂ« shumĂ« raste janĂ« thjesht thelbĂ«sore:
- Chrony mund të sinkronizohet me një server kohe shumë më shpejt se shërbimi i vjetër ntpd. Kjo është e dobishme për laptopët ose kompjuterët desktop që nuk funksionojnë vazhdimisht.
- Ai mund të kompensojë luhatjet e tingujve, për shembull, kur hosti kalon në gjumin e thellë ose hyn në gjumin e zakonshëm, ose kur frekuenca e taktimeve ndryshon për shkak të një ndryshimi të papritur të frekuencës që ngadalëson taktime në ngarkesa të ulëta.
- Ai zgjidh problemet e kohës që ndodhin për shkak të një lidhjeje të paqëndrueshme të rrjetit ose mbingarkesës së rrjetit.
- Ai rregullon vonesat në rrjet.
- Pas sinkronizimit fillestar të kohës, Chrony kurrë nuk ndalon orët. Kjo siguron intervale të stabilizuara dhe të përputhshme të kohës për shumë shërbime dhe aplikacione sistemike.
- Chrony mund të funksionojë edhe pa lidhje në rrjet. Në këtë rast, hosti lokal ose serveri mund të përditësohet manualisht.
- Chrony mund të veprojë si një server NTP.
Përsëri: NTP është një protokoll që mund të zbatohet në një host Linux duke përdorur Chrony ose systemd-timesyncd.
Pakot RPM për NTP, Chrony dhe systemd-timesyncd janë në dispozicion në repozitorët standard të Fedora. RPM systemd-udev është menaxheri i ngjarjeve të bërthamës, i cili në Fedora është instaluar si parazgjedhje, por nuk është e nevojshme për t'u përdorur.
Mund të instaloni të tre dhe të kaloni mes tyre, por kjo do të krijojë shqetësime të panevojshme. Prandaj, nuk rekomandohet. Lëshimet moderne të Fedora, CentOS dhe RHEL janë kaluar në Chrony si zbatimi standard, dhe përveç kësaj, kanë systemd-timesyncd. Unë mendoj se Chrony funksionon mirë, ofron një ndërfaqe më të mirë se shërbimi NTP, ofron shumë më tepër informacion dhe rrit kontrollin, gjë që padyshim do t'i pëlqejë administratës së sistemeve.
Ăaktivizimi i shĂ«rbimeve NTP
Mund të jetë që shërbimi NTP është duke u ekzekutuar tashmë në host-in tuaj. Nëse është kështu, duhet ta çaktivizoni atë përpara se të kaloni në diçka tjetër. Unë kisha ekzekutuar chronyd, kështu që përdora komandat e mëposhtme për ta ndaluar dhe çaktivizuar atë. Ekzekutoni komandat për çdo demon NTP që po përdorni në host-in tuaj:
[root@testvm1 ~]# systemctl disable chronyd ; systemctl stop chronyd
Removed /etc/systemd/system/multi-user.target.wants/chronyd.service.
[root@testvm1 ~]#Kontrolloni që shërbimi të ndalet dhe të çaktivizohet:
[root@testvm1 ~]# systemctl status chronyd
â chronyd.service - NTP klient/servery
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 ~]#Kontrolloni statusin para fillimit
Statusi i sinkronizimit të sistemit të orës tregon nëse shërbimi NTP është aktiv. Duke qenë se ende nuk e keni aktivizuar NTP, komanda timesync-status do t'ju japë një informacion të tillë:
[root@testvm1 ~]# timedatectl timesync-status
Dështoi të kërkojë serverin: Nuk mund të aktivizohet partneri i largët.Një kërkesë e drejtpërdrejt për status jep informacion të rëndësishëm. Për shembull, komanda timedatectl pa argumente ose parametra ekzekuton nënkomandën status ngaDefault:
[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 ~]#Kështu do të merrni kohën lokale për hostin tuaj, kohën UTC dhe kohën RTC. Në këtë rast, koha e sistemit është vendosur në zonën e kohës America/New_York (TZ), RTC është vendosur në kohën në zonën lokale, dhe shërbimi NTP nuk është aktiv. Koha e RTC ka filluar të devijojë pak nga koha e sistemit. Kjo është e zakonshme për sistemet, orët e të cilave nuk janë sinkronizuar. Shuma e devijimit në host varet nga koha e kaluar që nga sinkronizimi i fundit të sistemit.
Ne kemi marrĂ« gjithashtu njĂ« paralajmĂ«rim pĂ«r pĂ«rdorimin e kohĂ«s lokale pĂ«r RTC â kjo lidhet me ndryshimet e zonĂ«s kohore dhe cilĂ«simet e orarit tĂ« verĂ«s. NĂ«se kompjuteri Ă«shtĂ« i fikur nĂ« momentin kur Ă«shtĂ« e nevojshme tĂ« bĂ«hen ndryshime, koha e RTC nuk do tĂ« ndryshojĂ«. Por pĂ«r serverĂ«t ose hostet tĂ« tjerĂ« qĂ« punojnĂ« 24/7, kjo nuk Ă«shtĂ« njĂ« problem. PĂ«r mĂ« tepĂ«r, çdo shĂ«rbim qĂ« siguron sinkronizimin e kohĂ«s NTP do tĂ« rregullojĂ« kohĂ«n e hostit qĂ« nĂ« fazĂ«n fillestare tĂ« nisjes, kĂ«shtu qĂ« pas pĂ«rfundimit tĂ« nisjes, koha do tĂ« jetĂ« e saktĂ« pĂ«rsĂ«ri.
Caktimi i zonës kohore
Zakonisht, ju e caktoni zonën kohore gjatë procedurës së instalimit dhe nuk keni nevojë ta ndryshoni më pas. Megjithatë, ka raste kur është e nevojshme të ndryshoni zonën kohore. Ka disa mjete që mund të ndihmojnë. Për të përcaktuar zonën lokale kohore, hosti Linux përdor skedarët e zonave kohore. Këta skedarë ndodhen në direktor /usr/share/zoneinfo. Siç është caktuar për zonën time kohore, sistemi shkruan këtë: /etc/ localtime -> ../usr/share/zoneinfo/America/New_York. Por nuk është e nevojshme të dini këto detaje për të ndryshuar zonën kohore.
E rëndësishme është të dini emrin zyrtar të një zone kohore për vendndodhjen tuaj dhe komandën përkatëse. Të themi, dëshironi të ndryshoni zonën tuaj kohore në Los Angeles:
[root@testvm2 ~]# timedatectl list-timezones | column
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/HelsinkiTani mund të vendosni zonën tuaj kohore. Unë kam përdorur komandën date për të kontrolluar ndryshimet, por ju gjithashtu mund të përdorni 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 ~]#Tani mund të ndryshoni përsëri zonën tuaj kohore në orën lokale.
systemd-timesyncd
Demoni systemd timesync ofron një implementim NTP që është lehtësisht i menaxhueshëm në kontekstin e systemd. Ai instalohët si parazgjedhje në Fedora dhe Ubuntu. Sidoqoftë, ai niset si parazgjedhje vetëm në Ubuntu. Nuk jam i sigurt për distribuim të tjerë. Mund ta kontrolloni vetë:
[root@testvm1 ~]# systemctl status systemd-timesyncdKonfigurimi i systemd-timesyncd
Skedari i konfigurimit për systemd-timesyncd është /etc/systemd/timesyncd.conf. Ky është një skedar i thjeshtë me më pak mundësi të përfshira sesa shërbimet e vjetra NTP dhe chronyd. Këtu është përmbajtja e këtij skedari (pa ndryshime shtesë) në makinerinë time virtuale me Fedora:
# 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=2048Një nga seksionet që përmban, përveç komenteve, është [Time]. Të gjitha rreshtat e tjerë janë komentuar. Këto janë vlerat e paracaktuara, nuk është e nevojshme të ndryshohen (nëse nuk keni arsye për këtë). Nëse nuk keni një server NTP të caktuar në rreshtin NTP =, serveri i kohës rezervë i Fedora përdoret si default në Fedora. Unë zakonisht shtoj serverin tim të kohës:
NTP=myntpserverAktivizimi i timesync
Për të aktivizuar dhe nisur systemd-timesyncd mund ta bëni kështu:
[root@testvm2 ~]# systemctl enable systemd-timesyncd.service
Krijuar lidhje simbolike /etc/systemd/system/dbus-org.freedesktop.timesync1.service â /usr/lib/systemd/system/systemd-timesyncd.service.
Krijuar lidhje simbolike /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 ~]#Instalimi i orëve harduerike
Kështu duken gjërat pas nisjes së timesyncd:
[root@testvm2 systemd]# timedatectl
Kohë lokale: Die 2020-05-16 14:34:54 EDT
Kohë universale: Die 2020-05-16 18:34:54 UTC
Kohë RTC: Die 2020-05-16 14:34:53
Zona kohore: Amerika/New_York (EDT, -0400)
Synchronized clock: po
Shërbimi NTP: aktiv
RTC në TZ lokale: jo Fillimisht, diferenca midis RTC dhe kohës lokale (EDT) nuk kalon një sekondë, dhe shkëputja rritet edhe disa sekonda në ditët në vijim. Duke qenë se RTC nuk ka konceptin e zonave kohore, komanda timedatectl duhet të bëjë një krahasim për të përcaktuar zonën e duhur kohore. Nëse koha RTC nuk përputhet saktësisht me kohën lokale, atëherë do të thotë se ajo nuk përputhet as me zonën lokale kohore.
Në kërkim të informacionit shtesë, kontrollova gjendjen e systemd-timesync dhe gjetëm këtë:
[root@testvm2 systemd]# systemctl status systemd-timesyncd.service
â systemd-timesyncd.service - Synchronizimi i KohĂ«s nĂ« Rrjet
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: "Synchronizedi fillestar në serverin e kohës 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]: Duke filluar Synchronizimin e Kohës në Rrjet...
May 16 09:57:24 testvm2.both.org systemd-timesyncd[822]: Koha sistemike nuk është e vendosur ose ka shkuar mbrapa, duke u rikthyer nga timestamps regjistruar: Sat 2020-05-16 13:56:53 EDT
May 16 13:56:53 testvm2.both.org systemd[1]: Filloi Synchronizimi i Kohës në Rrjet.
May 16 13:57:56 testvm2.both.org systemd-timesyncd[822]: Synchronizimi fillestar në serverin e kohës 163.237.218.19:123 (2.fedora.pool.ntp.org).
[root@testvm2 systemd]#Kujdesi ndaj mesazhit të kësaj jurnalizimi, që tregon se koha sistemike nuk është vendosur ose është rikthyer mbrapa. Shërbimi Timesync vendos kohën sistemike sipas timestamps. Timestamps mbahen nga demon timesync dhe krijohen në çdo sinkronizim të suksesshëm.
Komanda timedatectl nuk ka mundësinë të marrë vlerën e orës hardware nga orët sistemore. Ajo mund të vendosë vetëm kohën dhe datën nga vlera e futur në komandën e linjës. Ju mund të vendosni RTC në të njëjtën vlerë si koha sistemore duke përdorur komandën hwclock:
[root@testvm2 ~]# /sbin/hwclock --systohc --localtime
[root@testvm2 ~]# timedatectl
Koha lokale: Hën 2020-05-18 13:56:46 EDT
Koha universale: Hën 2020-05-18 17:56:46 UTC
Koha RTC: Hën 2020-05-18 13:56:46
Zona orare: Amerika/New_York (EDT, -0400)
Ora sistemore e sinkronizuar: po
Shërbimi NTP: aktiv
RTC nĂ« TZ lokale: poOpsioni âlocaltime tregon se orĂ«t hardware tregojnĂ« kohĂ«n lokale, jo UTC.
Pse ju nevojitet RTC në të vërtetë?
Ădo implementim i NTP do tĂ« vendosĂ« orĂ«t sistemore gjatĂ« nisjes. E pse atĂ«herĂ« RTC? Nuk Ă«shtĂ« pikĂ«risht kĂ«shtu: kjo do tĂ« ndodhi vetĂ«m nĂ«se keni njĂ« lidhje nĂ« rrjet me serverin e kohĂ«s. MegjithatĂ«, shumĂ« sisteme nuk kanĂ« qasje tĂ« vazhdueshme nĂ« lidhjen nĂ« rrjet, kĂ«shtu qĂ« orĂ«t hardware janĂ« tĂ« dobishme pĂ«r t'i lejuar Linux-it tĂ« vendosĂ« kohĂ«n sistemore mbi bazĂ«n e tyre. Kjo Ă«shtĂ« mĂ« mirĂ« se sa vendosja manuale e kohĂ«s, edhe nĂ«se ajo mund tĂ« pĂ«rjashtohet nga koha reale.
Përfundimi
NĂ« kĂ«tĂ« artikull shqyrtohen disa mjete pĂ«r menaxhimin e datĂ«s, orĂ«s dhe zona tĂ« ndryshme kohore. Mjeti systemd-timesyncd ofron njĂ« klient NTP qĂ« mund tĂ« sinkronizojĂ« kohĂ«n nĂ« hostin lokal me njĂ« server NTP. MegjithatĂ«, systemd-timesyncd nuk ofron njĂ« shĂ«rbim serveri, prandaj, nĂ«se ju nevojitet njĂ« server NTP nĂ« rrjetin tuaj, duhet tĂ« pĂ«rdorni diçka tjetĂ«r â pĂ«r shembull, Chrony, pĂ«r tĂ« funksionuar si server.
Unë preferoj të kem një implementim të vetëm për çdo shërbim në rrjetin tim, prandaj po përdor Chrony. Nëse ju nevojitet një server lokal NTP ose nëse nuk ju pengon të përdorni Chrony si server dhe systemd-timesyncd si klient SNTP. Në fund të fundit, nuk ka nevojë për të përdorur karakteristika shtesë të Chrony si klient, përsa është i kënaqshëm funksionaliteti i systemd-timesyncd.
Një vërejtje tjetër: nuk jeni të detyruar të përdorni mjetet e systemd për të implementuar NTP. Mund të përdorni versionin e vjetër ntpd, Chrony, apo ndonjë implementim tjetër të NTP. Sepse systemd përbëhet nga një sërë shërbimesh; shumë prej tyre janë opsionale, prandaj mund të çaktivizohen dhe të përdoren zgjidhje të tjera. Nuk është një monstër i madh monolit. Mund të mos e pëlqeni systemd apo ndonjë pjesë të tij, por duhet të merrni një vendim të arsyeshëm.
Më pëlqen implementimi i NTP në systemd, por preferoj Chrony, sepse ai i përgjigjet më mirë nevojave të mia. Kjo është Linux, babe -)
Si reklamë
VDSina ofron , njĂ« zgjedhje tĂ« madhe sistemesh operative pĂ«r instalim automatik, ka mundĂ«sinĂ« tĂ« instaloni çdo OS nga e juaja , njĂ« zhvillim vetjak dhe pagesa pĂ«r ditĂ«. KujtojmĂ«, kemi serverĂ« tĂ« pĂ«rjetshĂ«m, tĂ« cilĂ«t janĂ« plotĂ«sisht tĂ« paprekshĂ«m nga koha đ
Burimi: habr.com
