systemd-timesyncd (Русский)
- systemd-timesyncd — это демон для синхронизации системных часов по сети. Это реализация клиента SNTP. В отличие от других более сложных реализаций NTP, таких как chrony или эталонный сервер NTP, этот демон реализует только клиентскую часть и фокусируется только на запросе времени с одного удаленного сервера и синхронизации локальных часов с ним. Если вы не планируете предоставлять NTP клиентам по сети или подключаться к локальным аппаратным часам, этого простого NTP-клиента должно быть достаточно для большинства установок. Демон запускается с минимальными привилегиями и связан с networkd, чтобы работать только при наличии сетевого подключения. Демон сохраняет текущее время при каждой синхронизации и использует его для возможной коррекции системных часов при загрузке, что позволяет работать на системах без аппаратных часов, таких как Raspberry Pi и embedded-устройства, и обеспечивать монотонное течение времени на этих системах, даже если оно не всегда правильное. Для использования этого демона при установке systemd нужно создать нового системного пользователя и группу «systemd-timesync».
Настройка
Запустите/включите службу systemd-timesyncd.service
, которая предоставляется пакетом systemd.
При запуске systemd-timesyncd считывает файл настроек /etc/systemd/timesyncd.conf
, который выглядит примерно так:
/etc/systemd/timesyncd.conf
[Time] #NTP= #FallbackNTP=0.arch.pool.ntp.org 1.arch.pool.ntp.org 2.arch.pool.ntp.org 3.arch.pool.ntp.org #...
Чтобы добавить серверы времени или изменить стандартные, раскомментируйте соответствующую строку и пропишите имена хостов или IP-адреса через пробел. Также можно добавить сниппет в /etc/systemd/timesyncd.conf.d/*.conf
; смотрите timesyncd.conf(5).
Например, можно использовать серверы, предоставляемые проектом NTP pool, или стандартные серверы Arch (которые тоже предоставляются проектом NTP pool):
/etc/systemd/timesyncd.conf или /etc/systemd/timesyncd.conf.d/local.conf
[Time] NTP=0.arch.pool.ntp.org 1.arch.pool.ntp.org 2.arch.pool.ntp.org 3.arch.pool.ntp.org FallbackNTP=0.pool.ntp.org 1.pool.ntp.org 0.fr.pool.ntp.org
Проверка настроек:
$ timedatectl show-timesync --all
LinkNTPServers= SystemNTPServers= FallbackNTPServers=0.arch.pool.ntp.org 1.arch.pool.ntp.org 2.arch.pool.ntp.org 3.arch.pool.ntp.org ServerName=0.arch.pool.ntp.org ServerAddress=103.47.76.177 RootDistanceMaxUSec=5s PollIntervalMinUSec=32s PollIntervalMaxUSec=34min 8s PollIntervalUSec=1min 4s NTPMessage={ Leap=0, Version=4, Mode=4, Stratum=2, Precision=-21, RootDelay=177.398ms, RootDispersion=142.196ms, Reference=C342F10A, OriginateTimestamp=Mon 2018-07-16 13:53:43 +08, ReceiveTimestamp=Mon 2018-07-16 13:53:43 +08, TransmitTimestamp=Mon 2018-07-16 13:53:43 +08, DestinationTimestamp=Mon 2018-07-16 13:53:43 +08, Ignored=no PacketCount=1, Jitter=0 } Frequency=22520548
Помимо настроек, серверы NTP могут предоставляться через опцию NTP=
в настройках systemd-networkd или динамически через DHCP-сервер.
Используемый NTP-сервер будет определяться с помощью следующих правил:
- Приоритет имеют любые NTP-серверы, полученные для конкретного интерфейса из настроек systemd-networkd.service(8) или через DHCP.
- Серверы NTP, указанные в файле
/etc/systemd/timesyncd.conf
, будут добавлены к списку серверов каждого каждого интерфейса во время работы, и демон будет обращаться к ним по очереди, пока какой-нибудь сервер не ответит. - Если после этого рабочий сервер не найдётся, будут использоваться серверы из настройки
FallbackNTP=
.
/var/lib/systemd/timesync/clock
. Этот путь нельзя изменить. Это может стать проблемой при работе с корневым разделом, доступным только для чтения, или при попытках минимизировать запись на SD-карту.Использование
Для включения и запуска просто выполните:
# timedatectl set-ntp true
Процесс синхронизации может быть ощутимо медленным. Это нормально, стоит немного подождать, прежде чем считать это проблемой. Проверка состояния службы:
$ timedatectl status
Local time: Чт 2015-07-09 19:21:33 MSK Universal time: Чт 2015-07-09 16:21:33 UTC RTC time: Чт 2015-07-09 16:21:33 Time zone: Europe/Moscow (MSK, +0300) System clock synchronized: yes NTP service: active RTC in local TZ: no
Более подробная служебная информация:
$ timedatectl timesync-status
Server: 103.47.76.177 (0.arch.pool.ntp.org) Poll interval: 2min 8s (min: 32s; max 34min 8s) Leap: normal Version: 4 Stratum: 2 Reference: C342F10A Precision: 1us (-21) Root distance: 231.856ms (max: 5s) Offset: -19.428ms Delay: 36.717ms Jitter: 7.343ms Packet count: 2 Frequency: +267.747ppm