Linux టైమ్ సింక్రొనైజేషన్: NTP, Chrony మరియు systemd-timesyncd

Linux టైమ్ సింక్రొనైజేషన్: NTP, Chrony మరియు systemd-timesyncd
చాలా మంది సమయాన్ని ట్రాక్ చేస్తారు. మేము మా ఉదయం ఆచారాలను పూర్తి చేసి, పనికి వెళ్లడం, భోజనానికి బ్రేక్ చేయడం, ప్రాజెక్ట్ గడువులను చేరుకోవడం, పుట్టినరోజులు మరియు సెలవులు జరుపుకోవడం, విమానం ఎక్కడం మొదలైనవాటికి సమయానికి లేస్తాము.

అంతేకాకుండా: మనలో కొందరు సమయంతో నిమగ్నమై ఉన్నారు. నా గడియారం సౌరశక్తితో పనిచేస్తుంది మరియు నేషనల్ ఇన్‌స్టిట్యూట్ ఆఫ్ స్టాండర్డ్స్ అండ్ టెక్నాలజీ నుండి దాని ఖచ్చితమైన సమయాన్ని పొందుతుంది (NIST) లాంగ్‌వేవ్ రేడియో ద్వారా ఫోర్ట్ కాలిన్స్, కొలరాడోకి WWVB. ఫోర్ట్ కాలిన్స్ వద్ద ఉన్న అటామిక్ క్లాక్‌తో టైమ్ సిగ్నల్స్ సింక్రొనైజ్ చేయబడ్డాయి. నా Fitbit నా ఫోన్‌తో సమకాలీకరిస్తుంది, ఇది సర్వర్‌తో సమకాలీకరించబడుతుంది NTP, ఇది చివరికి పరమాణు గడియారంతో సమకాలీకరించబడుతుంది.

పరికరాలు కూడా సమయాన్ని ట్రాక్ చేస్తాయి.

మా పరికరాలు మరియు కంప్యూటర్‌లకు ఖచ్చితమైన సమయం కావడానికి అనేక కారణాలు ఉన్నాయి. ఉదాహరణకు, బ్యాంకింగ్, స్టాక్ మార్కెట్లు మరియు ఇతర ఆర్థిక వ్యాపారాలలో, లావాదేవీలు సరైన క్రమంలో నిర్వహించబడాలి మరియు ఖచ్చితమైన సమయ క్రమాలు దీనికి కీలకం.

మా ఫోన్‌లు, టాబ్లెట్‌లు, కార్లు, GPS సిస్టమ్‌లు మరియు కంప్యూటర్‌లకు ఖచ్చితమైన సమయం మరియు తేదీ సెట్టింగ్‌లు అవసరం. నా కంప్యూటర్ డెస్క్‌టాప్‌లోని గడియారం సరైన సమయాన్ని చూపాలని నేను కోరుకుంటున్నాను. నా స్థానిక క్యాలెండర్‌లో సరైన సమయంలో రిమైండర్‌లు కనిపించాలని నేను కోరుకుంటున్నాను. సరైన టైమింగ్ క్రాన్ మరియు సిస్టమ్‌డ్ జాబ్‌లు సరైన సమయంలో ప్రారంభించబడతాయని నిర్ధారిస్తుంది.

లాగింగ్ కోసం తేదీ మరియు సమయం కూడా ముఖ్యమైనవి, కాబట్టి తేదీ మరియు సమయం ఆధారంగా నిర్దిష్ట లాగ్‌లను కనుగొనడం కొంచెం సులభం. ఉదాహరణకు, నేను ఒకసారి DevOpsలో పనిచేశాను (ఆ సమయంలో వారు అలా పిలవలేదు) నార్త్ కరోలినా స్టేట్‌లో ఇమెయిల్ సిస్టమ్‌ను సెటప్ చేసాను. మేము రోజుకు 20 మిలియన్లకు పైగా ఇమెయిల్‌లను ప్రాసెస్ చేసాము. సంబంధిత కంప్యూటర్‌లు సమయం సమకాలీకరించబడినట్లయితే, సర్వర్‌ల శ్రేణిలో ఇమెయిల్‌ను గుర్తించడం లేదా భౌగోళికంగా చెదరగొట్టబడిన హోస్ట్‌లలో లాగ్ ఫైల్‌లను ఉపయోగించి ఈవెంట్‌ల ఖచ్చితమైన క్రమాన్ని గుర్తించడం చాలా సులభం.

ఒక సారి - చాలా గంటలు

సిస్టమ్ సమయం మరియు RTC సమయం ఉందని Linux హోస్ట్‌లు తప్పనిసరిగా తెలుసుకోవాలి. RTC (రియల్ టైమ్ క్లాక్) అనేది హార్డ్‌వేర్ గడియారానికి కొంచెం విచిత్రమైన మరియు ప్రత్యేకించి ఖచ్చితమైన పేరు కాదు.

సిస్టమ్ యొక్క మదర్‌బోర్డ్‌లోని బ్యాటరీని ఉపయోగించి కంప్యూటర్ ఆఫ్ చేయబడినప్పటికీ హార్డ్‌వేర్ గడియారం నిరంతరంగా నడుస్తుంది. RTC యొక్క ప్రధాన విధి సమయ సర్వర్‌కు కనెక్షన్ అందుబాటులో లేనప్పుడు సమయాన్ని నిల్వ చేయడం. ఇంటర్నెట్ ద్వారా టైమ్ సర్వర్‌కు కనెక్ట్ చేయడం అసాధ్యం అయిన ఆ రోజుల్లో, ప్రతి కంప్యూటర్‌కు ఖచ్చితమైన అంతర్గత గడియారం ఉండాలి. బూట్ సమయంలో ఆపరేటింగ్ సిస్టమ్‌లు RTCని యాక్సెస్ చేయాల్సి ఉంటుంది మరియు వినియోగదారు సరైనదని నిర్ధారించుకోవడానికి BIOS హార్డ్‌వేర్ కాన్ఫిగరేషన్ ఇంటర్‌ఫేస్‌ని ఉపయోగించి సిస్టమ్ సమయాన్ని మాన్యువల్‌గా సెట్ చేయాలి.

హార్డ్‌వేర్ గడియారాలు సమయ మండలాల భావనను అర్థం చేసుకోలేదు; RTC సమయాన్ని మాత్రమే నిల్వ చేస్తుంది, టైమ్ జోన్ లేదా UTC నుండి ఆఫ్‌సెట్ కాదు (కోఆర్డినేటెడ్ యూనివర్సల్ టైమ్, దీనిని GMT లేదా గ్రీన్విచ్ మీన్ టైమ్ అని కూడా అంటారు). నేను ఈ కథనంలో తరువాత చర్చించబోయే సాధనాన్ని ఉపయోగించి మీరు RTCని ఇన్‌స్టాల్ చేయవచ్చు.

సిస్టమ్ సమయం అనేది మీ డెస్క్‌టాప్‌లోని GUI గడియారంలో, తేదీ కమాండ్ అవుట్‌పుట్‌లో, లాగ్ టైమ్‌స్టాంప్‌లలో OS ప్రదర్శించే సమయం. ఫైల్‌లు సృష్టించబడిన, సవరించబడిన మరియు తెరవబడిన సమయాలకు కూడా ఇది వర్తిస్తుంది.

పేజీలో rtc కోసం మనిషి 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 పాత ntpd సేవ కంటే చాలా వేగంగా టైమ్ సర్వర్‌తో సమకాలీకరించగలదు. ల్యాప్‌టాప్‌లు లేదా డెస్క్‌టాప్‌లు ఎల్లవేళలా అమలు చేయబడని వాటికి ఇది మంచిది.
  • హోస్ట్ నిద్రపోతున్నప్పుడు లేదా స్లీప్ మోడ్‌లోకి ప్రవేశించినప్పుడు లేదా ఫ్రీక్వెన్సీ హోపింగ్ కారణంగా క్లాక్ స్పీడ్ మారినప్పుడు, తక్కువ లోడ్‌లలో గడియార వేగాన్ని తగ్గించడం వంటి క్లాక్ స్పీడ్‌లలో హెచ్చుతగ్గులను ఇది భర్తీ చేస్తుంది.
  • ఇది అస్థిర నెట్‌వర్క్ కనెక్షన్ లేదా నెట్‌వర్క్ రద్దీకి సంబంధించిన సమయ సమస్యలను పరిష్కరిస్తుంది.
  • ఇది నెట్‌వర్క్ జాప్యాన్ని నియంత్రిస్తుంది.
  • ప్రారంభ సమయ సమకాలీకరణ తర్వాత, క్రోనీ గడియారాన్ని ఎప్పుడూ ఆపదు. ఇది అనేక సిస్టమ్ సేవలు మరియు అప్లికేషన్‌లకు స్థిరమైన మరియు స్థిరమైన సమయాన్ని అందిస్తుంది.
  • క్రోనీ నెట్‌వర్క్ కనెక్షన్ లేకుండా కూడా పని చేయగలదు. ఈ సందర్భంలో, స్థానిక హోస్ట్ లేదా సర్వర్ మానవీయంగా నవీకరించబడుతుంది.
  • Chrony NTP సర్వర్‌గా పని చేస్తుంది.

మరోసారి, NTP అనేది Chrony లేదా systemd-timesyncdని ఉపయోగించి Linux హోస్ట్‌లో అమలు చేయగల ప్రోటోకాల్.

NTP, Chrony మరియు systemd-timesyncd RPM ప్యాకేజీలు ప్రామాణిక Fedora రిపోజిటరీలలో అందుబాటులో ఉన్నాయి. systemd-udev RPM అనేది ఫెడోరాలో డిఫాల్ట్‌గా ఇన్‌స్టాల్ చేయబడిన కెర్నల్ ఈవెంట్ మేనేజర్, కానీ ఉపయోగం కోసం ఇది అవసరం లేదు.

మీరు మూడింటిని ఇన్‌స్టాల్ చేసి వాటి మధ్య మారవచ్చు, కానీ ఇది అనవసరమైన తలనొప్పిని సృష్టిస్తుంది. కాబట్టి చేయకపోవడమే మంచిది. Fedora, CentOS మరియు RHEL యొక్క ఆధునిక విడుదలలు ప్రామాణిక అమలుగా Chronyకి మారాయి మరియు అదనంగా అవి systemd-timesyncdని కలిగి ఉన్నాయి. క్రోనీ బాగా పనిచేస్తుందని నేను భావిస్తున్నాను, 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 సమయాన్ని మీకు అందిస్తుంది. ఈ సందర్భంలో, సిస్టమ్ సమయం అమెరికా/న్యూయార్క్ (TZ) టైమ్ జోన్‌కి సెట్ చేయబడింది, RTC స్థానిక టైమ్ జోన్‌కి సెట్ చేయబడింది మరియు NTP సేవ సక్రియంగా లేదు. RTC సమయం సిస్టమ్ సమయం నుండి కొద్దిగా వైదొలగడం ప్రారంభించింది. గడియారాలు సమకాలీకరించబడని సిస్టమ్‌లకు ఇది సాధారణం. హోస్ట్‌లో ఆఫ్‌సెట్ మొత్తం సిస్టమ్ చివరిగా సమకాలీకరించబడినప్పటి నుండి గడిచిన సమయంపై ఆధారపడి ఉంటుంది.

RTC కోసం స్థానిక సమయాన్ని ఉపయోగించడం గురించి మేము హెచ్చరికను కూడా అందుకున్నాము - ఇది టైమ్ జోన్ మార్పులు మరియు డేలైట్ సేవింగ్ టైమ్ సెట్టింగ్‌లకు వర్తిస్తుంది. మార్పులు చేయవలసి వచ్చినప్పుడు కంప్యూటర్ ఆఫ్ చేయబడితే, RTC సమయం మారదు. కానీ గడియారం చుట్టూ పనిచేసే సర్వర్‌లు లేదా ఇతర హోస్ట్‌లకు, ఇది అస్సలు సమస్య కాదు. అదనంగా, 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 టైమ్‌సింక్ డెమోన్ ఒక NTP అమలును అందిస్తుంది, ఇది systemd సందర్భంలో నిర్వహించడం సులభం. ఇది ఫెడోరా మరియు ఉబుంటులో డిఫాల్ట్‌గా ఇన్‌స్టాల్ చేయబడింది. అయితే, ఇది ఉబుంటులో మాత్రమే డిఫాల్ట్‌గా నడుస్తుంది. ఇతర పంపిణీల గురించి నాకు ఖచ్చితంగా తెలియదు. మీరు మీ కోసం తనిఖీ చేయవచ్చు:

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

systemd-timesyncdని కాన్ఫిగర్ చేస్తోంది

systemd-timesyncd కోసం కాన్ఫిగరేషన్ ఫైల్ /etc/systemd/timesyncd.conf. ఇది పాత NTP మరియు chronyd సేవల కంటే తక్కువ ఎంపికలు ప్రారంభించబడిన సాధారణ ఫైల్. నా 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=2048

కామెంట్‌లు కాకుండా ఇందులో ఉన్న ఏకైక విభాగం [సమయం]. అన్ని ఇతర పంక్తులు వ్యాఖ్యానించబడ్డాయి. ఇవి డిఫాల్ట్ విలువలు మరియు మార్చవలసిన అవసరం లేదు (మీకు అలా చేయడానికి కారణం లేకపోతే). మీకు NTP= లైన్‌లో నిర్వచించబడిన NTP టైమ్ సర్వర్ లేకపోతే, 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 సేవ టైమ్‌స్టాంప్ ఆధారంగా సిస్టమ్ సమయాన్ని సెట్ చేస్తుంది. టైమ్‌స్టాంప్‌లు టైమ్‌సింక్ డెమోన్ ద్వారా నిర్వహించబడతాయి మరియు విజయవంతమైన సమకాలీకరణ సంభవించిన ప్రతిసారీ సృష్టించబడతాయి.

సిస్టమ్ గడియారం నుండి హార్డ్‌వేర్ క్లాక్ విలువను తీసుకునే సామర్ధ్యం 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 కంటే స్థానిక సమయాన్ని చూపమని చెబుతుంది.

మీకు ఆర్టీసీ ఎందుకు అవసరం?

ఏదైనా NTP అమలు ప్రారంభ సమయంలో సిస్టమ్ గడియారాన్ని సెట్ చేస్తుంది. మరి అలాంటప్పుడు ఆర్టీసీ ఎందుకు? ఇది పూర్తిగా నిజం కాదు: మీరు టైమ్ సర్వర్‌కు నెట్‌వర్క్ కనెక్షన్ కలిగి ఉంటే మాత్రమే ఇది జరుగుతుంది. అయినప్పటికీ, చాలా సిస్టమ్‌లు నెట్‌వర్క్ కనెక్షన్‌కి స్థిరమైన యాక్సెస్‌ను కలిగి ఉండవు, కాబట్టి హార్డ్‌వేర్ గడియారం ఉపయోగకరంగా ఉంటుంది, దీని ఆధారంగా Linux సిస్టమ్ సమయాన్ని సెట్ చేయగలదు. ఇది నిజ సమయం నుండి వైదొలగినప్పటికీ, సమయాన్ని మాన్యువల్‌గా సెట్ చేయడం కంటే ఇది ఉత్తమం.

తీర్మానం

ఈ కథనం తేదీ, సమయం మరియు సమయ మండలాలను నిర్వహించడానికి కొన్ని సాధనాలను కవర్ చేస్తుంది. systemd-timesyncd సాధనం NTP క్లయింట్‌ను అందిస్తుంది, ఇది స్థానిక హోస్ట్‌లో NTP సర్వర్‌తో సమయాన్ని సమకాలీకరించగలదు. అయినప్పటికీ, systemd-timesyncd సర్వర్ సేవను అందించదు, కాబట్టి మీకు మీ నెట్‌వర్క్‌లో NTP సర్వర్ అవసరమైతే, సర్వర్‌గా పనిచేయడానికి మీరు తప్పనిసరిగా వేరేదాన్ని ఉపయోగించాలి - Chrony వంటిది.

నేను నా నెట్‌వర్క్‌లో ఏదైనా సేవ కోసం ఒకే అమలును కలిగి ఉండాలనుకుంటున్నాను, కాబట్టి నేను క్రోనీని ఉపయోగిస్తాను. మీకు స్థానిక NTP సర్వర్ అవసరం లేకుంటే లేదా Chronyని సర్వర్‌గా మరియు systemd-timesyncdని SNTP క్లయింట్‌గా ఉపయోగించడం మీకు అభ్యంతరం లేకపోతే. అన్నింటికంటే, మీరు systemd-timesyncd యొక్క కార్యాచరణతో సంతృప్తి చెందితే, క్లయింట్‌గా Chrony యొక్క అదనపు లక్షణాలను ఉపయోగించాల్సిన అవసరం లేదు.

మరొక గమనిక: మీరు NTPని అమలు చేయడానికి systemd సాధనాలను ఉపయోగించాల్సిన అవసరం లేదు. మీరు ntpd, Chrony లేదా మరొక NTP అమలు యొక్క పాత సంస్కరణను ఉపయోగించవచ్చు. అన్ని తరువాత, systemd పెద్ద సంఖ్యలో సేవలను కలిగి ఉంటుంది; వాటిలో చాలా ఐచ్ఛికం, కాబట్టి మీరు వాటిని నిలిపివేయవచ్చు మరియు బదులుగా వేరేదాన్ని ఉపయోగించవచ్చు. ఇది భారీ ఏకశిలా రాక్షసుడు కాదు. మీరు systemd లేదా దానిలోని భాగాలను ఇష్టపడకపోవచ్చు, కానీ మీరు సమాచారంతో కూడిన నిర్ణయం తీసుకోవాలి.

నేను systemd యొక్క NTP అమలును ఇష్టపడుతున్నాను, కానీ నేను క్రోనీని ఇష్టపడతాను ఎందుకంటే ఇది నా అవసరాలకు బాగా సరిపోతుంది. ఇది Linux, బేబీ -)

ప్రకటనల హక్కులపై

VDSina అందిస్తుంది ఏదైనా పని కోసం సర్వర్లు, ఆటోమేటిక్ ఇన్‌స్టాలేషన్ కోసం ఆపరేటింగ్ సిస్టమ్‌ల యొక్క భారీ ఎంపిక, మీ స్వంత నుండి ఏదైనా OS ని ఇన్‌స్టాల్ చేయడం సాధ్యపడుతుంది ISO, సౌకర్యవంతమైన నియంత్రణ ప్యానెల్ సొంత అభివృద్ధి మరియు రోజువారీ చెల్లింపు. మా వద్ద శాశ్వతమైన సర్వర్‌లు ఉన్నాయని మీకు గుర్తు చేద్దాం, అవి ఖచ్చితంగా టైమ్‌లెస్ 😉

Linux టైమ్ సింక్రొనైజేషన్: NTP, Chrony మరియు systemd-timesyncd

మూలం: www.habr.com

ఒక వ్యాఖ్యను జోడించండి