systemd-timesyncd (Русский)

Состояние перевода:
На этой странице представлен перевод статьи
systemd-timesyncd
. Дата последней синхронизации: 2 декабря 2023. Вы можете
помочь
синхронизировать перевод, если в английской версии произошли
изменения
.
Ссылки по теме
systemd-networkd (Русский)
systemd (Русский)
Время
Из
списка рассылки systemd
:
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
Смотрите также
Forum: systemd-timesyncd is not syncing time
Forum: Using systemd-timesync instead of NTP
Исходный код timesyncd
systemd-timesyncd(8)
timesyncd.conf(5)