CentOS Nastavení data a času, zóny, synchronizace s NTP

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 opravy
  • hwclock --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.