V tomto článku vám řeknu, jak nastavit čas, datum a změnit časové pásmo v systému Linux CentOS, jak synchronizovat čas se serverem NTP a opravit běžné chyby..
Obsah:
- Hwclock: nastavení hardwarového (systémového) času
- Ruční nastavení času v CentOS
- Nastavení časového pásma na CentOS
- Konfigurace synchronizace času NTP v CentOS
- Pro synchronizaci času v CentOS 8 používáme chronyd
- Časté chyby při nastavování času v CentOS
Na serverech jsou dva druhy hodin. Hardware (hodiny reálného času), který funguje, i když je server vypnutý, a softwarové hodiny operačního systému. Hodnoty těchto dvou hodin se mohou lišit. V tomto případě po spuštění operačního systému jsou softwarové hodiny založeny na údajích o hardwaru a mohou být upraveny systémem.
Převážná většina programů využívá při své práci hodiny softwaru..
Hwclock: nastavení hardwarového (systémového) času
Nástroj používaný ke kontrole hardwarového času v systému Linux hwclock:
hwclock --lokálně
- kontrola hardwarového času bez opravyhwclock --utc
- kontrola času s podmínkou, že hardwarové hodiny jsou v UTC
[root @ server atd.] # hwclock --lokálně
St 27. 11. 2019 11:28:28 AM +06 -1,012225 sekund
[root @ server atd.] # hwclock --utc
St 27 Nov 2019 05:28:30 PM +06 -0,045476 sekund
Chcete-li nastavit čas hardwaru rovný systémovému času, spusťte příkaz:
# hwclock --systohc
Chcete-li nastavit konkrétní čas, postupujte takto:
# hwclock --set - datum "27. listopadu 2019 17:30"
Ruční nastavení času v CentOS
V Linuxu je tento program zodpovědný za čas programu datum nebo timedatectl. Pokud zavoláte obslužný program datum bez parametrů zobrazí aktuální čas na serveru:
[root @ server atd.] # datum
27. listopadu 17:40:56 +06 2019
Pokud chcete nastavit čas ručně, můžete použít nástroj datum s dalšími klíči:
# date MMDDhhmm
Kde MM je měsíc, DD je den, hh je hodina, mm jsou minuty.
Například:
# date 11261740
Pro získání pokročilých informací o datu, čase, zóně, synchronizaci, nastavení pro přepnutí na sezónní (letní / zimní) čas (DST) se používá obslužný program timedatectl. Poskytuje podrobnější informace o nastavení času serveru..
Timedatectl také umožňuje změnit čas:
# timedatectl set-time '2019-11-27 17:51:00'
Nastavení časového pásma na CentOS
Chcete-li, aby čas serveru CentOS Linux odpovídal vašemu časovému pásmu, můžete jej změnit ručně. Existují dva nástroje pro toto:
- timedatectl
- tzdata
Změna časového pásma pomocí obslužného programu timedatectl, spusťte příkaz:
# timedatectl set-timezone Europe / Moscow
Nebo můžete použít tzdata. Chcete-li použít tuto metodu, musíte soubor nahradit / etc / localtime k tomu, co potřebujete. Celý seznam časových pásem je umístěn v adresáři / usr / share / zoneinfo /. Změňte časové pásmo na Asie / Almaty. Vytvořte zálohu souboru locatime:
# mv / etc / localtime /etc/localtime.bak
Vytvořte symbolický odkaz do požadovaného časového pásma:
# ln -s / usr / share / zoneinfo / Asia / Almaty / etc / localtime
Konfigurace synchronizace času NTP v CentOS
Automatickou synchronizaci času na serveru můžete nakonfigurovat pomocí externího serveru NTP (Network Time Protocol). Chcete-li to provést, nainstalujte službu ntp. Například na CentOS 7 se instalace provádí pomocí yum:
# yum install ntp -y
Po instalaci je třeba spustit službu ntpd a přidat ji ke spuštění:
# systemctl start ntpd.service
# systemctl enable ntpd.service
Zkontrolujte, zda je služba spuštěna:
[root @ server Asia] # service ntpd status
Přesměrování na stav / bin / systemctl ntpd.service ● ntpd.service - načtena služba síťového času: načteno (/usr/lib/systemd/system/ntpd.service; povoleno; předvolba dodavatele: deaktivována) aktivní: aktivní (spuštěná) od Čt 2019-11-28 09:47:33 +06; Před 5 min Hlavní PID: 3057 (ntpd) CGroup: /system.slice/ntpd.service └─ 3057 / usr / sbin / ntpd -u ntp: ntp -g
V souboru /etc/ntp.conf musíte zadat server, se kterým chcete synchronizovat čas:
server 0.pool.ntp.org server 1.pool.ntp.org server 2.pool.ntp.org
Synchronizace času se provádí postupně. Pokud není první server NTP nedostupný, přistupuje k druhému atd..
Čas můžete ručně synchronizovat se zadaným NTP serverem pomocí příkazu:
# ntpdate 192.168.1.100
Ve výchozím nastavení, ntpd zapne v systému režim „11 minut“, to znamená, že čas bude synchronizován každých 11 minut. Pokud nemůžete použít démona ntpd, můžete nakonfigurovat synchronizaci času pomocí krone, do krony přidejte následující příkaz:
# ntpdate pool.ntp.org
Pro synchronizaci času v CentOS 8 používáme chronyd
Pro CentOS 8 odstraněn z oficiálních repozitářů ntp a ntpdate, proto k synchronizaci času je třeba použít chronika.
Hlavní výhody chroniky:
- vysoká rychlost a přesnost synchronizace
- správná funkce při neexistenci přístupu k referenčním hodinám (ntpd vyžaduje pravidelné požadavky)
- ve výchozím nastavení se během synchronizace okamžitě nezmění čas, aby nedošlo k narušení činnosti programů
- Využívá méně zdrojů
Výchozí nástroj chronika již nainstalován v systému, ale pokud jej z nějakého důvodu nemáte, nainstalujte:
# dnf chronologie instalace
Jako každá jiná služba, po instalaci chronologie musíte povolit a přidat ji ke spuštění:
# systemctl start chronyd
# systemctl povolit chronyd
Zkontrolujte stav služby:
Chcete-li ověřit, že synchronizace funguje, spusťte příkaz:
# timedatectl status
Služba NTP: aktivní
Konfigurační soubor chronika - /etc/chrony.conf. V něm musíte zadat seznam serverů NTP, které chcete použít pro synchronizaci. Jako u ntp, v chronika existuje rozhraní příkazového řádku chronyc. Chcete-li zkontrolovat informace o aktuálním nastavení synchronizace času, použijte:
# chronyc tracking
Chcete-li zkontrolovat informace o synchronizačních serverech, spusťte příkaz:
# chronyc sources
Pokud chcete nastavit konkrétní čas a datum ručně, můžete použít nástroj datum, ale předtím musíte démona deaktivovat chronyd.
Časté chyby při nastavování času v CentOS
V této části popíšu běžné chyby, ke kterým dochází při práci s obslužnými programy timedatectl, ntp.
Při ruční synchronizaci času může docházet k podobné chybě:
ntpdate [26214]: soket NTP je používán a končí
To znamená, že máte spuštěného démona. ntpd, což blokuje ruční synchronizaci času. Chcete-li provést ruční synchronizaci, zastavte démona ntpd:
# service ntpd stop
A restartujte synchronizaci:
K podobné chybě může dojít při práci s obslužným programem timedatectl:
Nastavení času se nezdařilo: Automatická synchronizace času je povolena.
Nyní je třeba zakázat automatickou synchronizaci v samotném obslužném programu timedatectl:
# timedatectl set-ntp 0
A spusťte příkaz k nastavení konkrétního času:
Při práci s časovými pásmy nemusí být na vašem serveru nainstalovány a vytvořit pro ně symbolický odkaz místní čas selže. Chcete-li zpřístupnit časová pásma v systému, nainstalujte obslužný program tzdata:
# yum install tzdata -y
Při ruční synchronizaci se tedy často vyskytují chyby ve formuláři:
28. listopadu 10:12:39 ntpdate [897482]: sendto (185.217.191.98): Operace není povolena
V tomto případě zkontrolujte pravidla brány firewall / iptables a ujistěte se, že je na serveru otevřený port UDP 123. Někteří synchronizační hostitelé také nemusí být v době ověření k dispozici.