Настройки за дата и час на CentOS, зони, синхронизация с NTP

В тази статия ще ви кажа как да настроите часа, датата и да промените часовата зона в Linux CentOS, как да синхронизирате времето с NTP сървър и да поправя често срещаните грешки.

Съдържание:

  • Часовник: настройка на хардуерно (системно) време
  • Ръчно настройване на времето в CentOS
  • Настройка на часовата зона на CentOS
  • Конфигурирайте синхронизацията на NTP време в CentOS
  • Използваме chronyd за синхронизация на времето в CentOS 8
  • Чести грешки при задаване на време в CentOS

Има два вида часовници на сървърите. Хардуер (часовник в реално време), който работи дори когато сървърът е изключен и софтуерният часовник на операционната система. Показанията на тези два часа могат да варират. В този случай след стартирането на операционната система софтуерният часовник се основава на показанията на хардуера и по-късно може да се регулира от системата.

По-голямата част от програмите използват софтуерни часове в работата си..

Часовник: настройка на хардуерно (системно) време

Помощна програма, използвана за проверка на хардуерното време в Linux hwclock:

  • час - час - проверка на хардуерното време без корекция
  • hwclock --utc - проверка на времето с условието, че хардуерният часовник е в UTC

[root @ сървър и т.н.] # hwclock --локално време

Ср 27 ноември 2019 11:28:28 AM +06 -1.012225 секунди

[root @ сървър и т.н.] # hwclock --utc

Сряда 27 ноември 2019 г. 17:28:30 +06 -0.045476 секунди

За да зададете хардуерното време, равно на системното време, изпълнете командата:

# hwclock --systohc

За да зададете конкретно време, направете:

# hwclock --set --date "27 ноември 2019 17:30"

Ръчно настройване на времето в CentOS

В Linux, помощната програма отговаря за програмното време дата или timedatectl. Ако се обадите на помощната програма дата без параметри, тя ще покаже текущото време на сървъра:

[root @ сървър и т.н.] # дата

Сря 27 ноември 17:40:56 +06 2019

Ако искате да зададете времето ръчно, можете да използвате помощната програма дата с допълнителни клавиши:

# дата MMDDhhmm

Където MM е месецът, DD е денят, hh е часът, mm е минутите.

Например:

# дата 11261740

За да получите разширена информация за дата, час, зона, синхронизация, настройки за преминаване към сезонно (лято / зима) време (DST), се използва помощната програма timedatectl. Тя предоставя по-подробна информация за настройките на сървърното време..

Timedatectl също ви позволява да промените времето:

# timedatectl зададено време „2019-11-27 17:51:00“

Настройка на часовата зона на CentOS

За да направите времето на сървъра на CentOS Linux да съвпада с вашата часова зона, можете да го промените ръчно. Има две помощни програми за това:

  • timedatectl
  • tzdata

За промяна на часовата зона чрез помощната програма timedatectl, изпълнете командата:

# timedatectl времева зона Европа / Москва

Или можете да използвате tzdata. За да използвате този метод, трябва да замените файла / etc / localtime на тази, от която се нуждаете. Целият списък от часови зони се намира в директорията / usr / share / zoneinfo /. Променете часовата зона на Азия / Алмати. Направете резервно копие на файла locatime:

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

Създайте символна връзка към желаната часова зона:

# ln -s / usr / share / zoneinfo / Азия / Алмати / и т.н. / localtime

Конфигурирайте синхронизацията на NTP време в CentOS

Можете да конфигурирате автоматична синхронизация на времето на вашия сървър с външен NTP (Network Time Protocol) сървър. За целта инсталирайте услугата NTP. Например, в CentOS 7 инсталацията се извършва чрез yum:

# yum инсталирате ntp -y

След инсталирането трябва да стартирате услугата ntpd и да я добавите към стартиране:

# systemctl start ntpd.service
# systemctl активирайте ntpd.service

Проверете дали услугата работи:

[root @ server Asia] # услуга ntpd статус

Пренасочване към / bin / systemctl статус ntpd.service ● ntpd.service - Заредена услуга на мрежата: заредена (/usr/lib/systemd/system/ntpd.service; активирана; предварително зададена настройка на доставчика: деактивирана) Активна: активна (работи) от Thu 2019-11-28 09:47:33 +06; Преди 5 мин. Основен PID: 3057 (ntpd) CGroup: /system.slice/ntpd.service └─3057 / usr / sbin / ntpd -u ntp: ntp -g 

Във файл /etc/ntp.conf трябва да посочите сървъра, с който искате да синхронизирате времето:

сървър 0.pool.ntp.org сървър 1.pool.ntp.org сървър 2.pool.ntp.org

Синхронизацията на времето се извършва последователно. Ако първият NTP сървър не е достъпен, вторият има достъп и т.н..

Можете ръчно да синхронизирате времето с посочения NTP сървър, като използвате командата:

# ntpdate 192.168.1.100

По подразбиране, ntpd включва "11-минутен режим" в системата, тоест времето ще се синхронизира на всеки 11 минути. Ако не можете да използвате демон ntpd, можете да конфигурирате синхронизация на времето с крони, добавете следната команда към крона:

# ntpdate pool.ntp.org

Използваме chronyd за синхронизация на времето в CentOS 8

За CentOS 8 премахнат от официалните хранилища NTP и ntpdate, следователно, за да синхронизирате времето, трябва да използвате chrony.

Основните предимства на хронията:

  • висока скорост и точност на синхронизацията
  • правилна работа при липса на достъп до референтния часовник (ntpd изисква редовни заявки)
  • по подразбиране не променя веднага времето по време на синхронизацията, за да не наруши работата на програмите
  • Използва по-малко ресурси

Помощна програма chrony вече е инсталиран в системата, но ако по някаква причина нямате, инсталирайте:

# dnf инсталирайте chrony

Както всяка друга услуга, след инсталирането на chrony трябва да я активирате и добавите към стартиране:

# systemctl start chronyd
# systemctl активирайте chronyd

Проверете състоянието на услугата:

За да проверите дали синхронизацията работи, изпълнете командата:

# timedatectl статус

NTP услуга: активна

Конфигурационен файл chrony - /etc/chrony.conf. В него трябва да посочите списък на NTP сървърите, които искате да използвате за синхронизация. Като ф NTP, при chrony има интерфейс на командния ред chronyc. За да проверите информацията за текущите настройки за синхронизация на времето, използвайте:

# хроника проследяване

За да проверите информация за сървърите за синхронизация, изпълнете командата:

# хроники източници

Ако искате да зададете конкретно време и дата ръчно, можете да използвате помощната програма дата, но преди това трябва да деактивирате демон chronyd.

Чести грешки при задаване на време в CentOS

В този раздел ще опиша често срещаните грешки, които се появяват при работа с помощни програми timedatectl, NTP.

При ръчно синхронизиране на времето може да възникне подобна грешка:

ntpdate [26214]: NTP сокетът се използва и излиза

Това означава, че имате демон да работи. ntpd, което блокира ръчната синхронизация на времето. За да извършите ръчна синхронизация, спрете демон ntpd:

# стоп услуга ntpd

И рестартирайте синхронизацията:

Подобна грешка може да възникне при работа с помощната програма timedatectl:

Неуспешно задаване на време: Автоматичната синхронизация на времето е активирана.

Сега трябва да деактивирате автоматичната синхронизация в самата помощна програма timedatectl:

# timedatectl set-ntp 0

И изпълнете командата, за да зададете конкретно време:

Когато работите с часови зони, те може да не бъдат инсталирани на вашия сървър и да създадат символна връзка за LOCALTIME ще се провали. За да направите часовите зони достъпни в системата, инсталирайте помощната програма tzdata:

# yum инсталирате tzdata -y

Така че при ръчната синхронизация често има грешки във формата:

28 ноември 10:12:39 ntpdate [897482]: изпратено (185.217.191.98): Операцията не е разрешена

В този случай проверете правилата firewalld / iptables и се уверете, че UDP порта 123 е отворен на вашия сървър.Също някои хостове за синхронизация може да не са налични по време на проверката.