CentOS Ustawienia daty i godziny, strefy, synchronizacja z NTP

W tym artykule powiem ci, jak ustawić godzinę, datę i zmienić strefę czasową w Linux CentOS, jak zsynchronizować czas z serwerem NTP i naprawić typowe błędy.

Treść

  • Hwclock: ustawianie czasu sprzętowego (systemowego)
  • Ręczne ustawianie czasu w CentOS
  • Konfiguracja strefy czasowej w CentOS
  • Skonfiguruj synchronizację czasu NTP w CentOS
  • Używamy chronyd do synchronizacji czasu w CentOS 8
  • Typowe błędy podczas ustawiania czasu w CentOS

Istnieją dwa rodzaje zegarów na serwerach. Sprzęt (zegar czasu rzeczywistego), który działa nawet wtedy, gdy serwer jest wyłączony, a zegar oprogramowania systemu operacyjnego. Odczyty tych dwóch godzin mogą się różnić. W takim przypadku po uruchomieniu systemu operacyjnego zegar oprogramowania jest oparty na odczytach sprzętu i może być regulowany przez system.

Zdecydowana większość programów wykorzystuje godziny oprogramowania w swojej pracy..

Hwclock: ustawianie czasu sprzętowego (systemowego)

Narzędzie używane do sprawdzania czasu sprzętowego w systemie Linux hwclock:

  • hwclock --localtime - kontrola czasu sprzętu bez korekty
  • hwclock --utc - sprawdzanie czasu pod warunkiem, że zegar sprzętowy jest w UTC

[root @ server itp.] # hwclock --localtime

Śr. 27 lis 2019 11:28:28 +06 -1.012225 sekund

[root @ serwer itp.] # hwclock --utc

Śr. 27 lis 2019 17:28:30 +06 -0.045476 sekund

Aby ustawić czas sprzętowy równy czasowi systemowemu, uruchom polecenie:

# hwclock --systohc

Aby ustawić określony czas, wykonaj:

# hwclock --set --date "27 listopada 2019 17:30"

Ręczne ustawianie czasu w CentOS

W systemie Linux narzędzie odpowiada za czas programu data lub timedatectl. Jeśli zadzwonisz do narzędzia data bez parametrów pokaże aktualny czas na serwerze:

[root @ server itp.] # data

Śr. 27 lis 17:40:56 +06 2019

Jeśli chcesz ustawić czas ręcznie, możesz użyć narzędzia data z dodatkowymi kluczami:

# data MMDDggmm

Gdzie MM to miesiąc, DD to dzień, hh to godzina, mm to minuty.

Na przykład:

# data 11261740

Aby uzyskać zaawansowane informacje o dacie, godzinie, strefie, synchronizacji, ustawieniach przełączania na czas sezonowy (lato / zima) (DST), narzędzie służy timedatectl. Zawiera bardziej szczegółowe informacje na temat ustawień czasu serwera..

Timedatectl pozwala również zmienić czas:

# timedatectl set-time '2019-11-27 17:51:00'

Konfiguracja strefy czasowej w CentOS

Aby czas serwera CentOS Linux był zgodny ze strefą czasową, możesz go zmienić ręcznie. Są do tego dwa narzędzia:

  • timedatectl
  • tzdata

Aby zmienić strefę czasową za pomocą narzędzia timedatectl, uruchom polecenie:

# timedatectl set-timezone Europa / Moskwa

Lub możesz użyć tzdata. Aby skorzystać z tej metody, musisz zastąpić plik / etc / czas lokalny do tego, czego potrzebujesz. Cała lista stref czasowych znajduje się w katalogu / usr / share / zoneinfo /. Zmień strefę czasową na Asia / Almaty. Utwórz kopię zapasową pliku lokalizacji:

# mv / etc / localtime /etc/localtime.bak

Utwórz dowiązanie symboliczne do żądanej strefy czasowej:

# ln -s / usr / share / zoneinfo / Asia / Almaty / etc / localtime

Skonfiguruj synchronizację czasu NTP w CentOS

Możesz skonfigurować automatyczną synchronizację czasu na swoim serwerze z zewnętrznym serwerem NTP (Network Time Protocol). Aby to zrobić, zainstaluj usługę ntp. Na przykład w CentOS 7 instalacja odbywa się poprzez yum:

# yum zainstaluj ntp -y

Po instalacji musisz uruchomić usługę NTTP i dodać ją do uruchamiania:

# systemctl start ntpd.service
# systemctl enable ntpd.service

Sprawdź, czy usługa jest uruchomiona:

[root @ server Asia] # service ntpd status

Przekierowanie do statusu / bin / systemctl 28.11.2019 09:47:33 +06; 5 minut temu Główny PID: 3057 (ntpd) Grupa C: /system.slice/ntpd.service └─3057 / usr / sbin / ntpd -u ntp: ntp -g 

W pliku /etc/ntp.conf musisz określić serwer, z którym chcesz synchronizować czas:

serwer 0.pool.ntp.org serwer 1.pool.ntp.org serwer 2.pool.ntp.org

Synchronizacja czasu odbywa się sekwencyjnie. Jeśli pierwszy serwer NTP jest niedostępny, dostęp do drugiego itd..

Możesz ręcznie zsynchronizować czas z określonym serwerem NTP za pomocą polecenia:

# ntpdate 192.168.1.100

Domyślnie, ntpd włącza w systemie tryb „11 minut”, co oznacza, że ​​czas będzie synchronizowany co 11 minut. Jeśli nie możesz użyć demona ntpd, możesz skonfigurować synchronizację czasu za pomocą krone, dodaj następujące polecenie do krona:

# ntpdate pool.ntp.org

Używamy chronyd do synchronizacji czasu w CentOS 8

Dla CentOS 8 usunięty z oficjalnych repozytoriów ntp i ntpdate, dlatego, aby zsynchronizować czas, musisz użyć chroniczny.

Główne zalety Chrony:

  • duża prędkość i dokładność synchronizacji
  • poprawne działanie przy braku dostępu do zegara referencyjnego (ntpd wymaga regularnych żądań)
  • domyślnie nie zmienia natychmiast czasu podczas synchronizacji, aby nie zakłócać działania programów
  • Zużywa mniej zasobów

Domyślne narzędzie chroniczny jest już zainstalowany w systemie, ale jeśli z jakiegoś powodu go nie masz, zainstaluj:

# dnf zainstaluj chrony

Jak każda inna usługa, po zainstalowaniu chrony musisz włączyć i dodać ją do uruchamiania:

# systemctl start chronyd
# systemctl enable chronyd

Sprawdź status usługi:

Aby sprawdzić, czy synchronizacja działa, uruchom polecenie:

# status timedatectl

Usługa NTP: aktywna

Plik konfiguracyjny chroniczny - /etc/chrony.conf. W nim musisz określić listę serwerów NTP, których chcesz użyć do synchronizacji. Jak ty ntp, o godz chroniczny istnieje interfejs wiersza poleceń chronyc. Aby sprawdzić informacje o bieżących ustawieniach synchronizacji czasu, użyj:

# śledzenie chronyc

Aby sprawdzić informacje o serwerach synchronizacji, uruchom polecenie:

# źródła chronyc

Jeśli chcesz ręcznie ustawić konkretną godzinę i datę, możesz użyć narzędzia data, ale wcześniej musisz wyłączyć demona chronyd.

Typowe błędy podczas ustawiania czasu w CentOS

W tej sekcji opiszę typowe błędy występujące podczas pracy z narzędziami timedatectl, ntp.

Podczas ręcznej synchronizacji czasu może wystąpić podobny błąd:

ntpdate [26214]: gniazdo NTP jest używane, wychodzi

Oznacza to, że masz uruchomionego demona. ntpd, który blokuje ręczną synchronizację czasu. Aby wykonać ręczną synchronizację, zatrzymaj demona ntpd:

# service ntpd stop

I ponownie uruchom synchronizację:

Podobny błąd może wystąpić podczas pracy z narzędziem timedatectl:

Nie udało się ustawić czasu: Automatyczna synchronizacja czasu jest włączona.

Teraz musisz wyłączyć automatyczną synchronizację w samym narzędziu timedatectl:

# timedatectl set-ntp 0

I wykonaj polecenie, aby ustawić określony czas:

Podczas pracy ze strefami czasowymi mogą nie zostać zainstalowane na serwerze i utworzyć dowiązania symbolicznego czas lokalny zawiedzie. Aby strefy były dostępne w systemie, zainstaluj narzędzie tzdata:

# yum zainstaluj tzdata -y

Dlatego przy ręcznej synchronizacji często występują błędy formularza:

28 listopada 10:12:39 ntpdate [897482]: sendto (185.217.191.98): Operacja niedozwolona

W takim przypadku sprawdź reguły zapory ogniowej / iptables i upewnij się, że port UDP 123 jest otwarty na twoim serwerze. Ponadto niektóre hosty synchronizacji mogą nie być dostępne w momencie weryfikacji.