timedatectl : vérifier la synchronisation de l'heure d'un serveur Linux et régler le fuseau horaire
timedatectl est une commande systemd qui affiche et modifie l'horloge système, le fuseau horaire et l'état de la synchronisation NTP d'un serveur Linux. Lors de la vérification de la synchronisation sur un serveur AlmaLinux 9 qui utilise chrony et sur un serveur Debian 12 qui utilise ntpsec, les deux serveurs avaient une horloge à l'heure, mais la ligne NTP service affichait active sur l'un et n/a sur l'autre.
Les sorties ci-dessous proviennent des deux serveurs. Seuls les noms d'hôte, les adresses IP et les numéros de version des paquets ont été remplacés par des valeurs d'exemple, et les commandes qui changent l'heure ou le fuseau horaire n'ont pas été lancées sur le serveur en production.
1️⃣ Utiliser timedatectl et vérifier l'heure du serveur Linux
Lancer timedatectl sans option donne le même résultat qu'avec status. L'heure de l'horloge système et de l'horloge matérielle (RTC), le fuseau horaire et l'état de la synchronisation sont réunis sur un seul écran. Voici le résultat sur le serveur Debian 12.
timedatectl Local time: Wed 2026-10-28 19:49:57 UTC
Universal time: Wed 2026-10-28 19:49:57 UTC
RTC time: Wed 2026-10-28 19:49:57
Time zone: Etc/UTC (UTC, +0000)
System clock synchronized: yes
NTP service: n/a
RTC in local TZ: noLe fuseau horaire du serveur Debian 12 est Etc/UTC, donc Local time et Universal time affichaient la même heure. Ce que chaque ligne indique et les résultats des deux serveurs figurent dans le tableau ci-dessous.
| Ligne de sortie | Ce qu'elle affiche | Résultats des deux serveurs et points à vérifier |
|---|---|---|
| Local time | Heure actuelle de l'horloge système, fuseau horaire appliqué | Après un changement de fuseau, seules cette ligne et la sortie de date passent au nouveau fuseau |
| Universal time | La même heure exprimée en UTC | Ne change pas avec le fuseau horaire – sur le serveur Debian 12 (Etc/UTC), identique à Local time |
| RTC time | Heure de l'horloge matérielle (RTC) | Affichée sans fuseau horaire – heure UTC si RTC in local TZ vaut no |
| Time zone | Fuseau horaire configuré, son abréviation et l'écart avec UTC | Pour le changer, utiliser un nom de la liste de list-timezones |
| System clock synchronized | Si le noyau considère l'horloge comme synchronisée | yes sur les deux serveurs – si no, vérifier d'abord le serveur de référence avec chronyc tracking ou ntpq -p |
| NTP service | Si le service de synchronisation que timedatectl active et désactive est en cours d'exécution | active sur AlmaLinux 9 (chrony), n/a sur Debian 12 (ntpsec) – n/a signifie que timedatectl ne connaît pas le service, vérifier alors avec systemctl |
| RTC in local TZ | Si l'horloge matérielle est gardée à l'heure locale (no = UTC) | no sur les deux serveurs – la commande pour passer de yes à UTC est set-local-rtc 0 |
Linux a deux horloges. L'horloge système est tenue par le noyau après le démarrage, et l'horloge matérielle est celle de la carte mère, qui garde l'heure même quand le serveur est éteint.
L'horloge matérielle se lit directement avec hwclock. hwclock affiche l'heure convertie dans le fuseau horaire actuel. Sur le serveur AlmaLinux, la lecture avec TZ=UTC devant la commande a donné une heure UTC se terminant par +00:00.
TZ=UTC hwclock --show2026-10-28 19:53:33.006788+00:00Sur le serveur Debian 12, auquel on s'était connecté avec un compte ordinaire, la même commande s'est arrêtée sans pouvoir accéder à l'horloge matérielle.
/usr/sbin/hwclock --showhwclock: Cannot access the Hardware Clock via any known method.
hwclock: Use the --verbose option to see the details of our search for an access method.La ligne RTC in local TZ correspond au même réglage que la troisième ligne du fichier /etc/adjtime. Sur le serveur AlmaLinux, la troisième ligne était UTC, ce qui signifie que l'horloge matérielle est gardée en UTC.
cat /etc/adjtime0.0 0 0.0
0
UTCPour lire des valeurs dans un script, utilisez show au lieu de status. Sur le serveur Debian 12, les mêmes informations s'affichent sous la forme nom=valeur, une par ligne.
timedatectl showTimezone=Etc/UTC
LocalRTC=no
CanNTP=no
NTP=no
NTPSynchronized=yes
TimeUSec=Wed 2026-10-28 19:49:57 UTC
RTCTimeUSec=Wed 2026-10-28 19:49:57 UTCChoisissez les propriétés avec -p et ajoutez --value pour ne garder que les valeurs, sans les noms. Cette forme sert à extraire seulement le nom du fuseau horaire.
timedatectl show -p Timezone --valueEtc/UTC🔲 Simulateur de la commande timedatectl
Dans le simulateur ci-dessous, vous pouvez saisir vous-même les commandes pour voir l'heure, lister les fuseaux horaires, changer de fuseau et vérifier la synchronisation avec chronyc.
2️⃣ État de la synchronisation de l'heure du serveur Linux
La ligne System clock synchronized indique si le noyau considère l'horloge comme synchronisée, et la ligne NTP service indique si le service de synchronisation que timedatectl peut activer et désactiver est en cours d'exécution. Avec show, les mêmes valeurs apparaissent sous NTPSynchronized et NTP, et CanNTP indique s'il existe un service de synchronisation activable et désactivable.
Sur le serveur AlmaLinux 9 avec chrony, les trois valeurs étaient yes.
timedatectl show -p CanNTP -p NTP -p NTPSynchronizedCanNTP=yes
NTP=yes
NTPSynchronized=yesSur le serveur Debian 12, qui règle l'heure avec ntpsec, seul NTPSynchronized était yes, CanNTP et NTP étaient no. C'est pourquoi la ligne NTP service affichait n/a sur l'écran status de ce serveur.
timedatectl show -p CanNTP -p NTP -p NTPSynchronizedCanNTP=no
NTP=no
NTPSynchronized=yesLe service ntpsec lui-même tournait.
systemctl is-active ntpsecactiveLes seuls services de synchronisation que connaît timedatectl sont ceux inscrits dans les fichiers de liste du dossier ntp-units.d, et les paquets de la distribution placent ces fichiers dans /usr/lib/systemd/ntp-units.d/ (d'après le manuel officiel). Le serveur AlmaLinux 9 avait un fichier de liste installé par le paquet chrony, contenant une seule ligne, chronyd.service.
cat /usr/lib/systemd/ntp-units.d/50-chronyd.listchronyd.servicerpm -qf /usr/lib/systemd/ntp-units.d/50-chronyd.listchrony-4.8-10.el9.x86_64Le serveur Debian 12 n'avait pas ce dossier. Comme ntpsec n'est pas dans la liste, timedatectl savait que l'horloge était synchronisée, mais ne pouvait ni activer ni désactiver ce service.
ls /usr/lib/systemd/ntp-units.d/ls: cannot access '/usr/lib/systemd/ntp-units.d/': No such file or directory3️⃣ Vérifier la synchronisation de l'heure avec chronyc
Sur un serveur avec chrony, chronyc indique sur quel serveur de temps l'horloge se cale. sources affiche les serveurs de temps interrogés par chronyd et leur état, un par ligne.
chronyc sourcesMS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
^- 192.0.2.10 2 10 377 943 +272us[ +275us] +/- 55ms
^- ntp1.example.com 2 10 377 80 -28us[ -32us] +/- 3655us
^- 198.51.100.33 3 10 257 384 -151us[ -156us] +/- 97ms
^- 198.51.100.82 3 10 177 532 +157us[ +149us] +/- 45ms
^* 192.0.2.123 3 4 377 2 -21us[ -23us] +/- 312usLe ^ en tête désigne un serveur de temps, un * en deuxième caractère le serveur de référence sur lequel l'horloge se cale en ce moment, et - un candidat non retenu dans le calcul. Poll 4 sur le serveur de référence signifie une interrogation toutes les 16 secondes (2 puissance 4), et Reach 377 indique que les huit dernières réponses ont toutes été reçues.
tracking affiche l'écart entre l'horloge système et l'heure du serveur de référence.
chronyc trackingReference ID : C000027B (192.0.2.123)
Stratum : 4
Ref time (UTC) : Wed Oct 28 19:50:21 2026
System time : 0.000002422 seconds slow of NTP time
Last offset : -0.000002098 seconds
RMS offset : 0.000000981 seconds
Frequency : 6.348 ppm slow
Residual freq : -0.001 ppm
Skew : 0.017 ppm
Root delay : 0.000300815 seconds
Root dispersion : 0.000150780 seconds
Update interval : 16.3 seconds
Leap status : NormalLa ligne System time montre que l'horloge système retardait de 0.000002422 seconde sur l'heure NTP, et Leap status était Normal. Un Update interval de 16.3 secondes est l'intervalle entre les deux dernières mises à jour de l'horloge.
Les serveurs interrogés sont fixés par les lignes pool et server de /etc/chrony.conf. En ne gardant que les lignes de réglage, sans commentaires ni lignes vides, on obtient ceci.
grep -v "^#" /etc/chrony.conf | grep -v "^$"pool 2.almalinux.pool.ntp.org iburst
sourcedir /run/chrony-dhcp
driftfile /var/lib/chrony/drift
makestep 1.0 3
rtcsync
keyfile /etc/chrony.keys
ntsdumpdir /var/lib/chrony
leapsectz right/UTC
logdir /var/log/chrony
server 192.0.2.123 prefer iburst minpoll 4 maxpoll 4La ligne pool interroge le pool NTP d'AlmaLinux, et prefer sur la dernière ligne server est une option qui fait choisir ce serveur avant les autres. makestep 1.0 3 est un réglage qui, lors des trois premières mises à jour après le démarrage de chronyd, corrige d'un coup une horloge décalée de plus de 1 seconde, puis l'ajuste peu à peu en la faisant tourner un peu plus vite ou plus lentement. rtcsync fait copier par le noyau l'heure système vers l'horloge matérielle toutes les 11 minutes (d'après la documentation officielle).
Sur le serveur Debian 12 avec ntpsec, les mêmes informations ont été vérifiées avec ntpq -p. Le * en tête est le serveur de référence, et les trois serveurs étaient interrogés toutes les 1024 secondes.
ntpq -p remote refid st t when poll reach delay offset jitter
===============================================================================
+203.0.113.43 198.51.100.28 2 u 835 1024 377 184.6893 -0.1018 1.4879
+203.0.113.44 198.51.100.27 2 u 547 1024 377 183.0827 -2.4227 4.0957
*ntp2.example.co 198.51.100.40 2 u 440 1024 377 177.4670 -0.5814 1.70704️⃣ Changer le fuseau horaire avec timedatectl
Les noms de fuseaux horaires se consultent avec list-timezones. La plupart ont la forme Continent/Ville, un par ligne, et les deux serveurs en avaient 598.
timedatectl list-timezones | head -5Africa/Abidjan
Africa/Accra
Africa/Addis_Ababa
Africa/Algiers
Africa/Asmaratimedatectl list-timezones | wc -l598La liste est longue ; pour chercher un nom, filtrez-la avec grep.
timedatectl list-timezones | grep -i new_yorkAmerica/New_YorkOn change de fuseau horaire en donnant un nom de la liste après set-timezone. Cette commande remplace le lien /etc/localtime par le nouveau fichier de fuseau horaire, il faut donc la lancer avec sudo depuis un compte ordinaire.
sudo timedatectl set-timezone America/New_Yorkls -l permet de vérifier si /etc/localtime est un lien vers un fichier de fuseau horaire.
ls -l /etc/localtimelrwxrwxrwx 1 root root 27 Sep 24 12:52 /etc/localtime -> /usr/share/zoneinfo/Etc/UTCUn nom absent de la liste a été refusé tout de suite, avant tout changement de fuseau horaire.
timedatectl set-timezone Mars/OlympusFailed to set time zone: Invalid or not installed time zone 'Mars/Olympus'Changer de fuseau horaire ne modifie pas l'heure de l'horloge système ; seuls Local time et la sortie de la commande date apparaissent dans le nouveau fuseau. Sur un serveur dont l'horloge matérielle est en UTC, l'horloge matérielle ne change pas non plus (d'après le manuel officiel).
5️⃣ Activer NTP et régler l'heure à la main avec timedatectl
set-ntp true démarre le premier service de la liste des services de synchronisation et l'active au démarrage. false arrête les services de la liste et les désactive au démarrage (d'après le manuel officiel).
sudo timedatectl set-ntp trueSur le serveur Debian 12 sans fichier de liste, la commande s'est terminée par NTP not supported, même avec false, la valeur actuelle. Un service absent de la liste, comme ntpsec, se démarre et s'arrête directement avec systemctl.
timedatectl set-ntp falseFailed to set ntp: NTP not supportedPour régler l'heure à la main, indiquez la date et l'heure après set-time. Cette commande règle l'horloge matérielle en même temps que l'horloge système.
sudo timedatectl set-time '2026-10-28 20:00:00'Sur le serveur Debian 12, la saisie d'une valeur au mauvais format s'est terminée par une erreur sans changer l'heure.
timedatectl set-time badFailed to parse time specification 'bad': Invalid argumentSur un serveur avec chrony, pour corriger d'un coup une horloge très décalée, on utilise chronyc makestep.
sudo chronyc makestepmakestep abandonne l'écart restant qui était corrigé peu à peu et fait sauter l'horloge système de cette valeur immédiatement. La documentation officielle avertit qu'un changement brusque de l'heure peut perturber certains logiciels ; ne l'utilisez donc que lorsque l'horloge est trop décalée pour être corrigée lentement.
🔢 FAQ & contenus recommandés
Paramètres · locale
[Linux] Commande localectl
La commande localectl affiche et modifie la langue du système (locale) et la disposition du clavier.
Infos système
Commande uptime sous Linux (temps de fonctionnement du serveur & charge moyenne sur 1, 5 et 15 minutes)
La commande uptime affiche depuis combien de temps le serveur tourne et la charge moyenne sur 1, 5 et 15 minutes.
Gestion des services
Démarrer, arrêter et redémarrer Apache : commandes et différence avec graceful
Commandes pour démarrer, arrêter et redémarrer Apache et vérifier l'état du service sur les systèmes de la famille Red Hat et sur Ubuntu.
ℹ️ Mention d'affiliation
Le contenu de ce site contient des liens d'affiliation. Lorsqu'un visiteur achète un produit ou un service via l'un de ces liens, le site perçoit une commission du vendeur. Le montant payé par l'acheteur(il baisse lors des promotions ↓), lui, n'augmente pas. Les prix, remises et stocks indiqués correspondent à la date de rédaction et peuvent différer ; vérifiez-les donc auprès du vendeur avant d'acheter. Les produits sont choisis et évalués selon nos propres critères, et les commissions n'influencent ni l'ordre de présentation ni le contenu des évaluations.