Ako nastaviť čas, časové pásmo a synchronizovať hodiny v Linuxe
V tomto článku sa naučíte, ako nastaviť čas, časové pásmo a synchronizovať hodiny systému Linux s NTP pomocou timedatectl, systemd-timesyncd a chrony. :
Príkaz „timedatectl“ je nástroj pre distribúcie založené na RHEL a Debian, a je súčasťou systému a správcu služieb „systemd“, pričom slúži ako náhrada za starý tradičný príkaz date používaný v linuxových distribúciách založených na démonoch „sysvinit“.
Príkaz timedatectl vám umožňuje zobrazovať a meniť konfiguráciu systémového hodinového času a jeho nastavení, tento príkaz môžete použiť na nastavenie alebo zmenu aktuálneho dátumu, času a časového pásma, alebo na povolenie automatickej synchronizácie systémového času so vzdialeným NTP serverom.
V tomto návode vás prevediem spôsobmi, ako môžete spravovať čas vo svojom Linux systéme nastavením dátumu, času, časového pásma a synchronizácie času cez NTP z terminálu pomocou timedatectl, systemd-timesyncd a chrony.
Je vždy dobré udržiavať správny čas na vašom serveri alebo systéme Linux, a môže to mať nasledujúce výhody:
- Udržiavajte včasnú prevádzku systémových úloh, pretože väčšina úloh v Linuxe je riadená časom.
- Presný čas pre zaznamenávanie udalostí a iných informácií v systéme.
- Správna synchronizácia pre distribuované systémy a aplikácie.
- Nevyhnutné pre bezpečnostné protokoly ako Kerberos a SSL/TLS overovanie certifikátov.
Ako nájsť a nastaviť miestnu časovú zónu v Linuxe
1. Ak chcete zobraziť aktuálny čas a dátum vo vašom systéme, použite príkaz timedatectl z príkazového riadku nasledovne:
timedatectl status
Vo vyššie uvedenom výstupe je čas RTC časom hardvérových hodín.
2. Čas na vašom Linux systéme je vždy riadený prostredníctvom časového pásma nastaveného na systéme, na zobrazenie aktuálneho časového pásma to urobte nasledovne:
timedatectl
OR
timedatectl | grep Time
3. Ak chcete zobraziť všetky dostupné časové pásma, spustite nižšie uvedený príkaz:
timedatectl list-timezones
4. Ak chcete zistiť miestne časové pásmo podľa vašej polohy, spustite nasledujúci príkaz.
timedatectl list-timezones | egrep -o "Asia/B.*"
timedatectl list-timezones | egrep -o "Europe/L.*"
timedatectl list-timezones | egrep -o "America/N.*"
5. Na nastavenie miestneho časového pásma v Linuxe použijeme prepínač set-timezone, ako je uvedené nižšie.
sudo timedatectl set-timezone "Asia/Kolkata"
timedatectl status
Vždy sa odporúča používať a nastavovať koordinovaný svetový čas, UTC.
sudo timedatectl set-timezone UTC
timedatectl status
Musíte zadať správny názov časového pásma, inak sa pri zmene časového pásma môžu vyskytnúť chyby. V nasledujúcom príklade je časové pásmo „Asia/Kolkata“ nesprávne, čo spôsobuje chybu.
failed to set time zone: invalid timezone
Ako nastaviť čas a dátum v Linuxe
Dátum a čas na vašom systéme môžete nastaviť pomocou príkazu timedatectl nasledovne:
Nastaviť čas v Linuxe
6. Na nastavenie iba času môžeme použiť prepínač set-time spolu s formátom času HH:MM:SS (hodina, minúta a sekunda).
sudo timedatectl set-time 12:25:30
timedatectl status
Môžete získať nasledujúcu chybu pri nastavení dátumu, ako je uvedené vyššie:
Failed to set time: Automatic time synchronization is enabled
Chyba sa vyskytuje, pretože je povolená automatická synchronizácia času (NTP), čo bráni manuálnym zmenám času.
Ak to chcete opraviť, najskôr vypnite NTP a potom nastavte čas.
sudo timedatectl set-ntp false
sudo timedatectl set-time 12:25:30
timedatectl status
7. Ak chcete nastaviť dátum aj čas, použite prepínač set-time spolu s formátom dátumu YYYY-MM-DD (Rok, Mesiac, Deň) a času HH:MM:SS (Hodina, Minúta a Sekunda):
sudo timedatectl set-time '2026-01-23 12:25:30'
Ako nájsť a nastaviť hardvérové hodiny v Linuxe
8. Ak chcete nastaviť svoj hardvérový čas na koordinovaný svetový čas, UTC, použite možnosť set-local-rtc boolean-value nasledovne:
Najprv zistite, či je váš hardvérový časovač nastavený na miestne časové pásmo:
timedatectl | grep local
Nastavte váš hardvérový čas na miestne časové pásmo:
sudo timedatectl set-local-rtc 1
Nastavte hardvérové hodiny na koordinovaný svetový čas (UTC):
sudo timedatectl set-local-rtc 0
Poznámka: Nastavenie RTC na miestny čas sa neodporúča a môže spôsobiť problémy s úpravou letného času, preto je najlepšie ponechať RTC v UTC.
Synchronizácia systémového času Linuxu s vzdialeným NTP serverom
NTP znamená Network Time Protocol a je to internetový protokol, ktorý sa používa na synchronizáciu systémového času medzi počítačmi.
Nástroj timedatectl vám umožňuje automaticky synchronizovať hodiny vášho systému Linux s diaľkovou skupinou serverov pomocou NTP.
Väčšina moderných distribúcií Linuxu používa rôzne implementácie synchronizácie NTP:
- systemd-timesyncd: Ľahký SNTP (Simple NTP) klient zabudovaný do systemd, ktorý je vhodný pre väčšinu desktopových a jednoserverových konfigurácií.
- chrony: Plnohodnotná NTP implementácia, ktorá môže fungovať ako klient aj server. Lepšie zvláda prerušované sieťové pripojenia a je presnejšia.
Používanie systemd-timesyncd
Ak chcete spustiť automatickú synchronizáciu času s diaľkovým NTP serverom, zadajte nasledujúci príkaz do terminálu, ktorý povolí a spustí službu systemd-timesyncd.
sudo timedatectl set-ntp true
Ak chcete vypnúť synchronizáciu času NTP, zadajte nasledujúci príkaz do terminálu.
sudo timedatectl set-ntp false
Na kontrolu stavu synchronizácie:
timedatectl status
Mali by ste vidieť „Synchronizácia systémového času: áno“ a „Služba NTP: aktívna“.
Použitie chrony (Odporúčané pre servery)
Ak prevádzkujete server alebo potrebujete spoľahlivejšiu synchronizáciu času, chrony je lepšou voľbou a je obzvlášť vhodný pre:
- Systémy, ktoré nebežia nepretržite (notebooky, stolné počítače).
- Servery vyžadujú vysokú presnosť.
- Systémy s prerušovaným sieťovým pripojením.
- Zhlukované prostredia, kde je kritická časová konzistencia.
Najprv nainštalujte chrony (ak ešte nie je nainštalovaný):
sudo apt install chrony [On Debian-based systems]
sudo dnf install chrony [On RHEL-based systems]
Poznámka: Inštalácia chrony automaticky deaktivuje systemd-timesyncd, aby sa predišlo konfliktom.
Po inštalácii povolíte, spustíte a skontrolujete stav synchronizácie:
sudo systemctl enable --now chronyd
timedatectl status
Ak chcete používať vlastné NTP servery namiesto predvolených, musíte upraviť konfiguračný súbor Chrony.
sudo nano /etc/chrony/chrony.conf
OR
sudo nano /etc/chrony/sources.d/custom.sources
Pridajte svoje preferované NTP servery (zoznam NTP serverov môžete získať z projektu NTP Pool).
pool 0.pool.ntp.org iburst
pool 1.pool.ntp.org iburst
pool 2.pool.ntp.org iburst
Reštartujte chrony po vykonaní zmien:
sudo systemctl restart chronyd
Dôležité poznámky o synchronizácii NTP
- Nemôžete súčasne spúšťať viacero implementácií NTP, takže si vyberte buď systemd-timesyncd, alebo chrony.
- systemd-timesyncd je iba klientská implementácia a nemôže poskytovať čas iným systémom.
- chrony môže fungovať ako časový klient aj ako časový server pre vašu lokálnu sieť.
- Pre produkčné servery a kritickú infraštruktúru sa vo všeobecnosti odporúča chrony pred systemd-timesyncd.
- NTP vyžaduje otvorenie UDP portu 123 pre odchádzajúce pripojenia.
Zhrnutie
Toto sú veľmi jednoduché príklady popísané v tomto návode a dúfam, že ich nájdete užitočné pri nastavovaní rôznych hodiniek a časových pásiem v Linuxe.
Ak sa chcete o tomto nástroji dozvedieť viac, prejdite na manuálovú stránku timedatectl.
man timedatectl
Ak máte k tomuto článku niečo na povedanie, neváhajte zanechať komentár pre doplnenie ďalších informácií.










