timedatectl

NTP (Network Time Protocol) est un protocole permettant de distribuer l'heure sur un réseau informatique. Il assure la synchronisation des horloges à travers le réseau internet (ou un réseau local). Un client peut ainsi demander l'heure actuelle à un serveur et l'utiliser pour ajuster sa propre horloge. Chaque machine peut être à la fois serveur et client.

Ce dispositif est assis sur une organisation complexe et hiérarchisée à partir d'horloges atomiques et de serveurs en cascades. La mise à jour de l'heure de chaque appareil doit tenir compte des délais de transmission de l'information depuis l'horloge atomique.

Ubuntu a longtemps utilisé ntpdate et ntpd pour ajuster l'horloge interne des systèmes d'exploitation, cette tâche est désormais assurée par timedatectl qui est installé par défaut dans votre distribution.

Timesyncd se substitue à la partie client de ntpd. Timesync vérifie l'heure de référence à intervalles réguliers et assure le maintien de la synchronisation des horloges. Il effectue également le stockage local des synchronisations, ainsi leur prise en compte est assurée en cas de réinitialisation.

Si ntpdate ou ntpd sont installés, timedatectl se désactive pour permettre à l'utilisateur d'utiliser l'ancienne configuration. Ce principe permet d'éviter la coexistence de deux serveurs de temps sur le même appareil, il a pour défaut, en cas de mise à jour à partir d'une ancienne version de ntp ou ntpdate, de risquer de désactiver les services qui utilisent systemd.

La configuration de timedatectl est modifiable avec les droits d'administration dans le fichier /etc/systemd/timesyncd.conf (choix du serveur) ou dans un fichier de configuration situé dans /etc/systemd/timesyncd.conf.d/ (voir doc).

Pour que la commande timedatectl set-ntp true puisse fonctionner (cf. plus bas) , taper la commande suivante :

sudo apt install -V systemd-timesyncd

Timedatectl est installé par défaut et fonctionne nativement à l'installation d'Ubuntu.

Réglages locaux

Fixer l’heure

timedatectl set-time 'HH:mm:ss'

syntaxe : HH:mm:ss = Heure, minute, seconde.

Fixer la date

timedatectl set-time 'A-M-J'

syntaxe : A-M-J = Année, Mois, Jour.

Fixer l’heure et la date

timedatectl set-time 'A-M-J HH:mm:ss'

Fuseaux horaires

Lister les fuseaux horaires :

timedatectl list-timezones

Choisir un fuseau horaire (Time Zone) :

timedatectl set-timezone Europe/Paris

Choix du serveur ntp

Le nom du serveur de synchronisation de timedatectl et timesyncd peut être défini par l'utilisateur dans un fichier spécifique ("drop-in") situé dans le répertoire /etc/systemd/timesyncd.conf.d ou dans le fichier /etc/systemd/timesyncd.conf. La documentation conseille de privilégier la première solution. Le nom du fichier "drop-in" est obligatoirement terminé par l'extension .conf pour être pris en compte. Des options complémentaires peuvent être indiquée dans le fichier (voir doc). Une liste de serveurs de temps libre peut être consultée ici. Une liste mondiale des serveurs se trouve à cet endroit.

Définir les serveurs de temps

La liste des serveurs de temps est insérée dans le fichier de configuration /etc/systemd/timesyncd.conf à la ligne NTP=. D'autres serveurs peuvent être ajoutés à la ligne FallbackNTP :

[Time]
NTP=fr.pool.ntp.org
FallbackNTP=0.ubuntu.pool.ntp.org 1.ubuntu.pool.ntp.org ntp.ubuntu.com
Préférer un serveur dans votre pays… ntp existants.
Dans un réseau d'entreprise, un serveur ou le routeur principal joue généralement ce rôle, contacter votre administrateur réseau si besoin

Activer la synchronisation

timedatectl set-ntp true

Stopper la synchronisation

timedatectl set-ntp false

Vérifier le statut et de la synchronisation des bases de temps

Le statut de l'heure et de sa configuration à partir de timedatectl et timesyncd peut être vérifié par la commande :

timedatectl status

qui donnera par exemple

Local time: dim. 2017-11-05 20:14:26 CET
Universal time: dim. 2017-11-05 19:14:26 UTC
RTC time: dim. 2017-11-05 19:14:27
Time zone: Europe/Paris (CET, +0100)
Network time on: yes
NTP synchronized: no
RTC in local TZ: no

ou bien avec la commande :

timedatectl timesync-status

qui donnera par exemple

       Server: 172.16.78.11 (172.16.78.11)
Poll interval: 4min 16s (min: 32s; max 34min 8s)
 Packet count: 0
  • timedatectl.txt
  • Dernière modification: Le 14/04/2023, 17:48
  • par 217.114.205.206