В тази статия ще ви кажа как да настроите часа, датата и да промените часовата зона в 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 е отворен на вашия сървър.Също някои хостове за синхронизация може да не са налични по време на проверката.