Time & date

Первоначальная реализация NTP — это ntpd. Затем к ней присоединились две более новых, chronyd и systemd-timesyncd. 

Chrony — это реализация NTP, содержащая две программы: демон chronyd и интерфейс командной строки под названием chronyc.

Ещё раз: NTP — это протокол, который может быть реализован на хосте Linux с использованием Chrony или systemd-timesyncd. 

 

 1. Посмотреть текущую дату и время на хосте

#date

Пн фев 6 10:17:54 MSK 2023

 

 2.Статус службы timedatectl

#timedatectl status

Local time: Пн 2023-02-06 10:18:51 MSK
Universal time: Пн 2023-02-06 07:18:51 UTC
RTC time: Пн 2023-02-06 07:18:51
Time zone: Europe/Moscow (MSK, +0300)
System clock synchronized: yes
NTP service: inactive
RTC in local TZ: no

 

 3.Служба времени chronyc

Конфиг службы хранится в /etc/chrony.conf

Обратить внимание! Если вы настроили chrony и разница со временем между хостом и ntp большая, то chrony будет постепенно уменьшать отставание, а не сразу поставит текущую дату и время. В зависимости от настроек, это может быть достаточно большой промежуток времени (более часа).

Статус службы

#systemctl status chronyd

 

Подробно...

#chronyc tracking

Reference ID : 0AFDFEEC (n5001-dc06.dpc.tax.nalog.ru)
Stratum : 4  # часовой пояс
Ref time (UTC) : Mon Feb 06 07:14:15 2023 # текущая дата и время
System time : 21.000545152 seconds slow of NTP time # текущее отставание/опережение времени сервера ntp (в данном примере около 21 сек)
Last offset : -0.000103954 seconds
RMS offset : 0.000323931 seconds
Frequency : 12.286 ppm slow
Residual freq : +0.004 ppm
Skew : 0.144 ppm
Root delay : 0.001781477 seconds
Root dispersion : 0.105637044 seconds
Update interval : 64.7 seconds
Leap status : Normal

 

Какие источники используются для синхронизации: chronyc sources 

#chronyc sources

MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
^+ n7701dc04> 4 6 377 28 -107us[ +265us] +/- 137ms # сервер с + будет использоваться, если не доступен сервер по-умолчанию
^* n7701dc05> 4 6 377 21 -838us[ -465us] +/- 131ms # сервер со * используется сейчас по-умолчанию

 

 

Пример конфига chrony.conf

#vi /etc/chrony/chrony.conf

pool 10.253.254.236 iburst
pool 10.253.254.235 iburst
pool 10.253.254.234 iburst
driftfile /var/lib/chrony/drift
makestep 1.0 3
rtcsync
keyfile /etc/chrony.keys
leapsectz right/UTC
logdir /var/log/chrony

 

 

4. Состояния служб на старых серверах

#service ntpd status

ntpd is running...

На старых ОС настройки ntp серверов указываются в файле /etc/ntp.conf 

 

#systemctl status systemd-timesyncd

systemd-timesyncd.service - Network Time Synchronization
Loaded: loaded (/lib/systemd/system/systemd-timesyncd.service; disabled; vendor preset: enabled)
Drop-In: /usr/lib/systemd/system/systemd-timesyncd.service.d
└─disable-with-time-daemon.conf
Active: inactive (dead)
Docs: man:systemd-timesyncd.service(8)

 

Посмотреть и задать часовой пояс

 

#date - посмотреть текущую дату и часовой пояс

#timedatectl status - посмотреть текущие системные настройки даты и часового пояса

#timedatectl list-timezones - посмотреть доступные часовые пояса (либо ls /usr/share/zoneinfo/ )

#timedatectl set-timezone Europe/Moscow - задать часовой пояс

 

Настройка времени если две ОС, которые по разному хранят время

Если у Вас установлено две ОС на одном хосте, которые по разному хранят время, то неизбежно с этим будут проблемы.

Так, например, Windows хранит аппаратное (в BIOS) время с учетом текущей зоны, так называемое localtime, т.е. если у Вас часовой пояс +3, то и время в BIOS Windows будет хранить +3. ОС на основе Linux как правило хранят время в BIOS как UTC и уже программно прибавляют текущий часовой пояс.

Наиболее првильное решение считается хранение времени в UTC.

 

Решение вопроса в Windows (выполняем в консоли):

Включаем хранение времени в Windows по UTC

>Reg add HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation /v RealTimeIsUniversal /t REG_DWORD /d 1 - для 32-х битных систем

>Reg add HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation /v RealTimeIsUniversal /t REG_QWORD /d 1 - для 64-х битных систем

Для возрата в исходное хранение (localtime) необходимо это значение изменить на 0.

 

Переключение в Linux

#timedatectl set-local-rtc 1 --adjust-system-clock - хранить в localtime

#timedatectl set-local-rtc 0 - хранить в UTC (по-умолчанию)

 

Еще в этой категории: « grub History »