Настройка даты и времени в CentOS

Содержание
Введение
date: Узнать текущие системные дату и время
hwclock: Узнать текущие дату и время BIOS
Изменить дату и время вручную
Синхронизация с ntp
Заставить систему синхронизовать время с ntp
Timezone

Введение

При работе в сети синхронизация времени и даты это важный фактор увеличивающий стабильность и безопасность работы всех систем.

В этой статье вы узнаете как настраивать дату и время вручную. И, что более важно - как синхронизировать их с ntp сервером.

Это статьи про дату и время в CentOS 7.

Про дату и вермя в Rocky Linux и CentOS 8 читайте здесь

Узнать текущее системное время

Узнать текущее системное время можно командой date

date

2024-03-28 18:49:53.364911+02:00

Узнать текущее время BIOS

Узнать текущее системное время BIOS можно командой hwclock

sudo hwclock

2024-03-28 18:49:53.344911+02:00

date и hwclock могут показывать совершенно разное время

Исправить текущее время

Сначала нужно задать время командой date

date MMDDhhmmCCYY.ss

Описание параметров команды date:
MM две цифры текущего месяца (пример: январь=01);
DD две цифры текущей даты (если текущий календарный день 1, то пишется 01);
hh две цифры обозначающие час
mm две цифры обозначающие минуты
CCYY четыре цифры года
ss две цифры секунд

Также можно вводить «date MMDDhhmmCCYY» без секунд, тогда секунды выставляются на ноль.

После выполнения date нужно внести новое установленное время в BIOS:

hwclock --systohc

Теперь осталось только проверить сохранились ли изменения

sudo hwclock

Синхронизация с ntp

Проверьте установлен ли ntp командой

which ntpd

/usr/sbin/ntpd

Если ntp не установлен выполните

sudo yum install ntp

Проверьте запускается ли ntpd автоматически командой

systemctl list-unit-files | grep ntpd.s

ntpd.service enabled

Если ntpd неактивен (disabled) выполните

systemctl start ntpd
systemctl enable ntpd

Проверить добавлен ли сервис ntp в зону public в firewall можно командой

sudo firewall-cmd --get-services | grep ntp

Если ещё не добавлен, то чтобы разрешить UDP траффик от ntp выполните

firewall-cmd --permanent --add-service=ntp
firewall-cmd --reload

success
success

Отредактируйте файл ntp.conf с настройками сервера

vi /etc/ntp.conf

Найдите свою временную зону на сайте www.ntppool.org

Я нашёл зону Helsinki и добавляю строки

server 0.fi.pool.ntp.org server 1.fi.pool.ntp.org server 2.fi.pool.ntp.org server 3.fi.pool.ntp.org

Теперь нужно перезапустить ntpd

systemctl restart ntpd

Проверить откуда берётся время можно командой

ntpq -p

remote refid st t when poll reach delay offset jitter ============================================================================== time.cloudflare 10.79.8.177 3 u 14 64 7 3.987 -0.366 0.016 37.228.129.2 193.66.253.94 2 u 16 64 7 5.301 -1.639 1.908 ivanova.ganneff 237.17.204.95 2 u 13 64 7 5.296 3.850 0.266 ntp23.kashra-se 192.168.100.15 2 u 12 64 5 32.935 -2.213 0.192

Выставить время BIOS по только что полученному времени можно командой

hwclock --systohc

Заставить систему синхронизовать время с ntp

Можно следующей командой

ntpdate -u 0.fi.pool.ntp.org

Вместо 0.fi.pool.ntp.org поставьте нужный вам сервер

Timezone

Узнать текущую временную зону

timedatectl

Local time: Fri 2024-03-28 18:49:53 MDT Universal time: Fri 2024-03-28 15:49:53 UTC RTC time: Fri 2021-05-21 07:42:43 Time zone: America/Denver (MDT, -0600) NTP enabled: yes NTP synchronized: yes RTC in local TZ: no DST active: yes Last DST change: DST began at Sun 2021-03-14 01:59:59 MST Sun 2021-03-14 03:00:00 MDT Next DST change: DST ends (the clock jumps one hour backwards) at Sun 2021-11-07 01:59:59 MDT Sun 2021-11-07 01:00:00 MST

Изменить временную зону можно командой set-timezone

timedatectl set-timezone "Europe/Helsinki"

Проверить результат

timedatectl | grep "Time zone"

Time zone: Europe/Helsinki (EEST, +0300)