systemd-timesyncd (Português)
Da lista de discussão do systemd (traduzido):
- systemd-timesyncd é um daemon que foi adicionado para sincronizar o relógio do sistema na rede. Ele implementa um cliente SNTP. Em contraste com implementações NTP como chrony ou o servidor de referência NTP, ele implementa apenas um lado do cliente e não se preocupa com a complexidade total do NTP, concentrando-se apenas em consultar o tempo de um servidor remoto e sincronizar o relógio local com ele. A menos que você pretenda servir NTP para clientes em rede ou queira se conectar a relógios de hardware locais, este cliente NTP simples deve ser mais do que apropriado para a maioria das instalações. O daemon é executado com privilégios mínimos e foi conectado ao networkd para operar apenas quando a conectividade de rede estiver disponível. O daemon salva o relógio atual no disco toda vez que uma nova sincronização NTP é adquirida e usa isso para possivelmente corrigir o relógio do sistema no início da inicialização, a fim de acomodar sistemas que não possuem RTC, como o Raspberry Pi e dispositivos incorporados, e certifique-se de que o tempo progride monotonicamente nesses sistemas, mesmo que nem sempre esteja correto. Para fazer uso deste daemon, um novo usuário do sistema e grupo "systemd-timesync" precisa ser criado na instalação do systemd.
Configuração
Inicie/habilite systemd-timesyncd.service
, o qual está disponível com systemd.
Ao iniciar, systemd-timesyncd lerá o arquivo de configuração de /etc/systemd/timesyncd.conf
, que se parece com isso:
/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 #...
Para adicionar servidores de tempo ou alterar os fornecidos, descomente a linha relevante e liste seu nome de host ou IP separado por um espaço. Por exemplo, você pode usar qualquer servidor fornecido por the NTP pool project ou usar os servidores padrão do Arch (também fornecido pelo projeto NTP pool):
/etc/systemd/timesyncd.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
Para verificar sua configuração:
$ 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
Além da configuração do daemon, os servidores NTP também podem ser fornecidos através de uma configuração do systemd-networkd com uma opção NTP=
ou, dinamicamente, via um servidor DHCP.
O servidor NTP a ser usado será determinado usando as seguintes regras:
- Quaisquer servidores NTP por interface obtidos da configuração do systemd-networkd.service(8) ou via DHCP têm precedência.
- Os servidores NTP definidos em
/etc/systemd/timesyncd.conf
serão anexados à lista por interface em tempo de execução e o daemon entrará em contato com os servidores até que seja encontrado um que responda. - Se nenhuma informação do servidor NTP for adquirida após a conclusão dessas etapas, os nomes de host do servidor NTP ou endereços IP definidos em
FallbackNTP=
serão usados.
/var/lib/systemd/timesync/clock
a cada sincronização. Este local é codificado e não pode ser alterado. Isso pode ser problemático para executar a partição raiz somente leitura ou tentar minimizar as gravações em um cartão SD.Uso
Para habilitá-lo e iniciá-lo, basta executar:
# timedatectl set-ntp true
O processo de sincronização pode ser notavelmente lento. Isso é esperado, deve-se esperar um pouco antes de determinar que há um problema. Para verificar o status do serviço, use:
$ timedatectl status
Local time: ter 2022-11-15 10:43:14 -03 Universal time: ter 2022-11-15 13:43:14 UTC RTC time: ter 2022-11-15 13:43:14 Time zone: America/Sao_Paulo (-03, -0300) System clock synchronized: yes NTP service: active RTC in local TZ: no
Para ver informações detalhadas do serviço, use:
$ timedatectl timesync-status
Server: 200.192.232.8 (0.arch.pool.ntp.org) Poll interval: 1min 4s (min: 32s; max 34min 8s) Leap: normal Version: 4 Stratum: 2 Reference: C8A007BA Precision: 1us (-23) Root distance: 11.115ms (max: 5s) Offset: +3.182ms Delay: 59.700ms Jitter: 1.202ms Packet count: 2 Frequency: +0,000ppm
Veja também
- Forum: systemd-timesyncd is not syncing time (em português, systemd-timesyncd não está sincronizando o tempo)
- Forum: Using systemd-timesync instead of NTP (em português, Usando systemd-timesync em vez do NTP)
- Código-fonte do timesyncd
- systemd-timesyncd(8)
- timesyncd.conf(5)