Skip to content
Systém

Zkontrolujte NTP pomocí timedatectl, než začnete hledat poruchu jinde

Avatar illustré de Julien Macé 2 min read
Serveur Linux relié à une horloge pour illustrer la synchronisation NTP
Horloge synchronisée sur un serveur Linux

Certifikát, který se odmítá validovat, neuspořádané žurnály nebo úloha spuštěná o hodinu příliš brzy rychle obviní aplikaci. Začněte tím, že si přečtete hodiny stroje. Na VM nebo serveru systemd, timedatectl ukazuje časové pásmo, službu NTP a stav synchronizace před jakoukoli opravou.

Cílem je oddělit tři případy: okamžik UTC je chybný, časové pásmo zobrazuje špatný místní čas, nebo synchronizace sítě nefunguje. Každý případ vyžaduje jinou akci.

Čtení času, časového pásma a stavu NTP

Nejprve zjistěte místní čas, UTC a stav spravovaný systemd. Proveďte tuto kontrolu ze relace, která může zůstat otevřená, pokud bude potřeba změnit čas nebo časové pásmo.

date -Is
date -u -Is
timedatectl status

Výstup zobrazuje zejména Local time, Universal time, RTC time, Time zone, System clock synchronized a NTP service. Stroj nastavený na UTC může zobrazovat neočekávaný místní čas, přičemž správně ukazuje okamžik. Porovnejte tedy date -u -Is s některým známým referenčním zdrojem před tím, než obviníte časové pásmo.

Ve skriptu se vyhněte parsování výstupu status. Získejte užitečné vlastnosti:

timedatectl show -p Timezone -p LocalRTC -p NTP -p NTPSynchronized

Změna časového pásma bez posunutí hodin

Pokud je UTC konzistentní, ale místní čas není, nejprve zkontrolujte, zda očekávané časové pásmo existuje:

timedatectl list-timezones | grep -Fx 'Europe/Paris'

Následně aplikujte časové pásmo, pak znovu přečtěte jeho hodnotu a místní čas:

sudo timedatectl set-timezone Europe/Paris
timedatectl show -p Timezone --value
date -Is

Tento příkaz změní prezentaci okamžiku UTC, nevrací hodiny na čas. Zkontrolujte časovače a okna údržby po změně. Cron jako 15 2 * * * sleduje místní čas služby, zatímco časovač systemd může deklarovat své vlastní časové pásmo.

systemctl list-timers --all

Průvodce o časovačích systemd a jejich rozdílech s cronem pomáhá interpretovat tento seznam. Změna časového pásma nevyžaduje restart vzdáleného serveru.

Povolení NTP s jediným synchronizačním klientem

Před použitím timedatectl set-ntp true identifikujte již nainstalovaného klienta. Podle distribuce může být hodiny řízené systemd-timesyncd, Chrony nebo ntpd.

systemctl list-unit-files | grep -E '^(systemd-timesyncd|chrony|chronyd|ntp).service'
systemctl is-active systemd-timesyncd
systemctl is-active chrony
systemctl is-active chronyd

Nečinná služba neznamená, že je třeba spustit všechny ostatní. Udržujte pouze jednoho klienta NTP. Na stroji, který používá systemd-timesyncd, aktivujte synchronizaci a pak zkontrolujte její výsledek:

sudo timedatectl set-ntp true
timedatectl show -p NTPSynchronized --value
timedatectl show-timesync --all
journalctl -u systemd-timesyncd -b --no-pager

Vlastnost NTPSynchronized=yes potvrzuje, že systemd považuje hodiny za synchronizované. show-timesync také poskytuje zvolený server a známé parametry timesyncd. Pokud již Chrony řídí hodiny, použijte jeho nástroje místo opětovného aktivování timesyncd. Článek o Chrony na Linuxu pokrývá tento případ.

Vyhněte se manuální opravě na serveru

Nespouštějte timedatectl set-time, protože se žurnál zdá být posunutý. Ruční skok může narušit certifikáty, Kerberos, vypršení relací, zámky databáze a naplánované úlohy.

Také zkontrolujte, jak Linux interpretuje hardwarové hodiny:

timedatectl status
sudo hwclock --show

Linux obvykle uchovává hardwarové hodiny v UTC. Pokud RTC in local TZ je yes, zkontrolujte politiku pracovního místa před přechodem na UTC, zejména s duálním spuštěním Windows. Toto nastavení může posunout čas při příštím spuštění.

Po opravě znovu zkuste timedatectl status, následující provádění a posledních deset minut protokolu příslušné služby. Pokud okamžik, NTP a nové události souhlasí, aplikace obvykle nevyžaduje žádný restart.

Dokumentace timedatectl od systemd objasňuje chování set-ntp a dostupné vlastnosti v závislosti na nainstalované verzi.

Share Facebook X WhatsApp LinkedIn Pinterest Reddit Email