systemd-timesyncd (Français)
Selon la liste de diffusion systemd :
- systemd-timesyncd est un daemon qui a été ajouté pour synchroniser l'horloge du système sur le réseau. Il implémente un client SNTP. Contrairement aux implémentations NTP telles que chrony ou le serveur de référence NTP, celui-ci n'implémente qu'un côté client, et ne s'embarrasse pas de toute la complexité de NTP, se concentrant seulement sur l'interrogation de l'heure d'un serveur distant et la synchronisation de l'horloge locale avec celui-ci. A moins que vous n'ayez l'intention de servir le NTP à des clients en réseau ou que vous vouliez vous connecter à des horloges matérielles locales, ce simple client NTP devrait être plus qu'approprié pour la plupart des installations. Le daemon fonctionne avec des privilèges minimaux, et a été connecté à networkd pour ne fonctionner que lorsque la connectivité réseau est disponible. Le daemon sauvegarde l'horloge actuelle sur le disque à chaque fois qu'une nouvelle synchronisation NTP a été acquise, et l'utilise pour corriger éventuellement l'horloge du système au démarrage, afin de s'adapter aux systèmes qui n'ont pas de RTC comme le Raspberry Pi et les appareils embarqués, et s'assurer que le temps progresse de façon monotone sur ces systèmes, même si ce n'est pas toujours correct. Pour utiliser ce daemon, un nouvel utilisateur système et un groupe "systemd-timesync" doivent être créés lors de l'installation de systemd.
Configuration
Démarrez et activez systemd-timesyncd.service
, qui est disponible via systemd.
Au démarrage, systemd-timesyncd lira le fichier de configuration de /etc/systemd/timesyncd.conf
, qui ressemble à ceci :
/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 #RootDistanceMaxSec=5 #PollIntervalMinSec=32 #PollIntervalMaxSec=2048
Pour ajouter des serveurs de temps ou modifier ceux qui sont fournis, décommentez la ligne correspondante et indiquez leur nom d'hôte ou leur adresse IP en les séparant par un espace. Par exemple, vous pouvez utiliser tous les serveurs fournis par le projet de pool NTP ou utiliser les serveurs par défaut d'Arch. (également fournis par le projet de pool NTP) :
/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
Pour vérifier votre configuration:
$ 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
Outre la configuration du daemon, les serveurs NTP peuvent également être fournis via une configuration [[Systemd-networkd (Français)#Section [NetDev]|systemd-networkd]] avec une option NTP=
ou, de manière dynamique, via un serveur DHCP.
Le serveur NTP à utiliser est déterminé d'après les règles suivantes :
- Tout serveur NTP par interface obtenu à partir de la configuration de systemd-networkd.service(8) ou via DHCP est prioritaire.
- Les serveurs NTP définis dans
/etc/systemd/timesyncd.conf
seront ajoutés à la liste par interface lors de l'exécution et le daemon contactera les serveurs à son tour jusqu'à ce qu'il en trouve un qui réponde. - Si aucune information sur le serveur NTP n'est obtenue après ces étapes, les noms d'hôtes ou adresses IP du serveur NTP définis dans
FallbackNTP=
seront utilisés.
/var/lib/systemd/systemd/timesync/clock
à chaque synchronisation. Cet emplacement est codé en dur et ne peut pas être modifié. Cela peut être problématique pour l'exécution d'une partition racine en lecture seule ou pour essayer de minimiser les écritures sur une carte SD.Utilisation
Pour l' activer ou le démarrer lancez :
# timedatectl set-ntp true
Le processus de synchronisation peut être sensiblement lent. Ce comportement est normal et vous devriez patienter un moment avant de considérer qu'il y a un problème. Pour vérifier l'état du service, utilisez :
$ timedatectl status
Local time: Thu 2015-07-09 18:21:33 CEST Universal time: Thu 2015-07-09 16:21:33 UTC RTC time: Thu 2015-07-09 16:21:33 Time zone: Europe/Amsterdam (CEST, +0200) System clock synchronized: yes NTP service: active RTC in local TZ: no
Pour obtenir de plus amples informations sur le service, utilisez :
$ 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