[ @console @time ]
Для ориентира можно глянуть на https://time.is
Настроить timezone своего профиля
Это делается в настройках системы (GUI), а тут рассмотрим, как сделать то же самое в консоли.
Сперва надо подружиться с понятием RTC (real-time clock) — это компонент в BIOS компьютера, который отвечает за отслеживание текущего времени и после отключения системы (поэтому живет на плоской батарейке на материнской плате).
Посмотреть нынешние настройки времени:
timedatectl
Пример ответа:
Universal time: Пт 2024-11-01 16:16:09 UTC
TC time: Пт 2024-11-01 16:16:09
Time zone: Europe/Chisinau (EET, +0200)
System clock synchronized: yes
NTP service: active
RTC in local TZ: no
Последние строки:
Системе можно/нужно указать, что для RTC (real-time clock) надо использовать время по UTC:
timedatectl set-local-rtc 0
Указать таймзону:
sudo timedatectl set-timezone Europe/Chisinau
Видно, что время в системе уже синхронизируется (System clock synchronized: yes). С каким именно источником?
timedatectl show-timesync --all
Пример ответа:
SystemNTPServers=
RuntimeNTPServers=
FallbackNTPServers=0.debian.pool.ntp.org 1.debian.pool.ntp.org 2.debian.pool.ntp.org 3.debian.pool.ntp.org
ServerName=2.debian.pool.ntp.org
ServerAddress=178.17.160.12
RootDistanceMaxUSec=5s
PollIntervalMinUSec=32s
PollIntervalMaxUSec=34min 8s
PollIntervalUSec=34min 8s
NTPMessage={ Leap=0,
Mode=4,
Stratum=2,
Precision=-23,
RootDelay=47.180ms,
RootDispersion=153.976ms,
Reference=C3B01ACD,
OriginateTimestamp=Fri 2024-11-01 17:50:23 EET,
ReceiveTimestamp=Fri 2024-11-01 17:50:23 EET,
TransmitTimestamp=Fri 2024-11-01 17:50:23 EET,
DestinationTimestamp=Fri 2024-11-01 17:50:23 EET,
Ignored=no,
PacketCount=8,
Jitter=12.118ms }
Время синхронизируется с сервером 2.debian.pool.ntp.org, который отзывается по 178.17.160.12 (можно только пинговать, в браузере не откроется).
Ещё указаны резервные NTP-серверы (FallbackNTPServers), такие как
0.debian.pool.ntp.org,
1.debian.pool.ntp.org
и др, которые будут пропингованы, если основной сервер станет недоступен.
Основные параметры:
PollIntervalUSec=34min 8s — текущий интервал опроса сервера (примерно 34 минуты).
NTPMessage — подробная информация о последнем NTP-сообщении, включая точность (Stratum=2) и показатели синхронизации (Jitter, RootDelay, RootDispersion).
Не очень-то нужно, но иногда надо
Выбрать сервер для синхронизация времени
Тут надо выбирать, с чем идти дальше — или ntp, или timesyncd.
Раньше был только железобетонный Network Time Protocol — ntp. Он и сегодня работает на серверах, где нужен постоянный учёт времени с точностью до милисекунд с синхронизацией между несколькими системами (production scenario). „NTP deamon is required only when a NTP server is required” ©
Сегодня в Debian за время отвечает отдельный сервис timesyncd, который „simpler to configure, more efficient, more secure, blah-blah-blah“. Но это сервис, а не time-server, он условно удобнее в настройке и не так требователен к милисекундам (user scenario).
Конечно, мы выбираем
systemctl status systemd-timesyncd
Пример ответа:
systemd-timesyncd.service - Network Time Synchronization Loaded: loaded (/lib/systemd/system/systemd-timesyncd.service; enabled; preset: enabled) Active: active (running) since Fri 2024-11-01 16:42:07 EET; 2h 12min ago Docs: man:systemd-timesyncd.service(8) Main PID: 818 (systemd-timesyn) Status: "Contacted time server 178.17.160.12:123 (2.debian.pool.ntp.org)." Tasks: 2 (limit: 18185) Memory: 1.6M CPU: 71ms CGroup: /system.slice/systemd-timesyncd.service └─818 /lib/systemd/systemd-timesyncd
Видно, что время получено с 178.17.160.12:123 (2.debian.pool.ntp.org) — те же данные, что и после „timedatectl show-timesync --all”).
Где взять список серверов для Debian — https://www.ntppool.org/ru/
Есть и Молдова — https://www.ntppool.org/zone/md — но основной сервер для нее установлен общеевропейский, поэтому разумнее синхронизироваться с time-серверами соседней страны.
Остановить синхронизацию времени
sudo systemctl stop systemd-timesyncd && sudo systemctl status systemd-timesyncd
Ожидаемый ответ: Active: inactive (dead)
Указать сервер для синхронизации времени
sudo mcedit /etc/systemd/timesyncd.conf
Заменить содержимое на
[Time] NTP=0.ro.pool.ntp.org 1.ro.pool.ntp.org 2.ro.pool.ntp.org 3.ro.pool.ntp.org FallbackNTP=0.europe.pool.ntp.org RootDistanceMaxSec=5 PollIntervalMinSec=32 PollIntervalMaxSec=2048 ConnectionRetrySec=30 SaveIntervalSec=60
Проверить связь с сервером синхронизации
timedatectl timesync-status
Пример ответа:
Poll interval: 0 (min: 32s; max 34min 8s)
Packet count: 0
Читаем так: сервер установлен, но не отвечает. Да, потому что на нашей стороне отключен сервис timesyncd.
Запустить systemd-timesyncd
sudo systemctl daemon-reload && sudo systemctl start systemd-timesyncd && sudo systemctl status systemd-timesyncd
Ожидаемый ответ:
Active: active (running) since Tue 2019-12-10 19:47:09 EET; 21s ago
Снова проверить связь с сервером синхронизации
timedatectl timesync-status
Пример ответа:
Poll interval: 2min 8s (min: 32s; max 34min 8s)
Leap: normal
Version: 4
Stratum: 2
Reference: 59D409B4
Precision: 1us (-24)
Root distance: 23.550ms (max: 5s)
Offset: -7.654ms
Delay: 57ms
Jitter: 2.892ms
Packet count: 2
Frequency: +69,564ppm
Всё.
То же самое детально:
timedatectl show-timesync --all