Recherche sur le site Web

Comment régler l'heure, le fuseau horaire et synchroniser l'horloge sous Linux


Dans cet article, apprenez à régler l'heure, le fuseau horaire et à synchroniser l'horloge de votre système Linux avec NTP en utilisant timedatectl, systemd-timesyncd et chrony. :

La commande « timedatectl » est un utilitaire pour les distributions basées sur RHEL et Debian, et elle fait partie du gestionnaire de systèmes et de services « systemd », servant de remplacement à l’ancienne commande date traditionnelle utilisée dans les distributions Linux à base de démon « sysvinit ».

La commande timedatectl vous permet de consulter et de modifier la configuration de l'horloge système et de ses paramètres. Vous pouvez utiliser cette commande pour définir ou modifier la date, l'heure et le fuseau horaire actuels, ou activer la synchronisation automatique de l'horloge système avec un serveur NTP distant.

Dans ce tutoriel, je vais vous montrer comment gérer le temps sur votre système Linux en réglant la date, l'heure, le fuseau horaire et en synchronisant l'heure avec NTP depuis le terminal en utilisant timedatectl, systemd-timesyncd et chrony.

Il est toujours recommandé de maintenir l'heure correcte sur votre serveur ou système Linux, ce qui peut offrir les avantages suivants :

  • Assurez le bon fonctionnement des tâches système en temps voulu, car la plupart des tâches sous Linux sont contrôlées par le temps.
  • Heure exacte pour enregistrer les événements et autres informations sur le système.
  • Synchronisation appropriée pour les systèmes et applications distribués.
  • Essentiel pour les protocoles de sécurité comme Kerberos et la validation des certificats SSL/TLS.

Comment trouver et définir le fuseau horaire local sous Linux

1. Pour afficher l'heure et la date actuelles sur votre système, utilisez la commande timedatectl depuis la ligne de commande comme suit :

timedatectl  status

Vérifier la date et l'heure du système Linux

Dans la sortie ci-dessus, l'heure RTC correspond à l'heure de l'horloge matérielle.

2. L'heure sur votre système Linux est toujours gérée via le fuseau horaire défini sur le système. Pour voir votre fuseau horaire actuel, faites comme suit :

timedatectl 
OR
timedatectl | grep Time

Vérifiez le fuseau horaire de votre système Linux

3. Pour afficher tous les fuseaux horaires disponibles, exécutez la commande ci-dessous :

timedatectl list-timezones

Lister tous les fuseaux horaires sur un système Linux

4. Pour trouver le fuseau horaire local selon votre emplacement, exécutez la commande suivante.

timedatectl list-timezones |  egrep  -o "Asia/B.*"
timedatectl list-timezones |  egrep  -o "Europe/L.*"
timedatectl list-timezones |  egrep  -o "America/N.*"

Trouvez votre fuseau horaire local dans Linux

5. Pour définir votre fuseau horaire local dans Linux, nous utiliserons l'option set-timezone comme indiqué ci-dessous.

sudo timedatectl set-timezone "Asia/Kolkata"
timedatectl status

Définir le fuseau horaire local sur un système Linux

Il est toujours recommandé d'utiliser et de régler l'heure universelle coordonnée, UTC.

sudo timedatectl set-timezone UTC
timedatectl status

Configurer l'heure de votre système à UTC

Vous devez saisir le nom de fuseau horaire correct, sinon vous pourriez rencontrer des erreurs lors du changement de fuseau horaire. Dans l'exemple suivant, le fuseau horaire « Asia/Kolkata » n’est pas correct, ce qui provoque l’erreur.

failed to set time zone: invalid timezone

Comment régler l'heure et la date dans Linux

Vous pouvez régler la date et l'heure de votre système en utilisant la commande timedatectl comme suit :

Régler l'heure dans Linux

6. Pour régler uniquement l'heure, nous pouvons utiliser un interrupteur set-time avec le format de l'heure en HH:MM:SS (Heure, Minute et Seconde).

sudo timedatectl set-time 12:25:30
timedatectl status

Vous pourriez recevoir l'erreur suivante lorsque vous définissez la date comme indiqué ci-dessus :

Failed to set time: Automatic time synchronization is enabled

L'erreur se produit parce que la synchronisation automatique de l'heure (NTP) est activée, ce qui empêche les modifications manuelles de l'heure.

Pour le réparer, désactivez d'abord le NTP, puis réglez l'heure.

sudo timedatectl set-ntp false
sudo timedatectl set-time 12:25:30
timedatectl status

Définir la date et l'heure locale sous Linux

7. Pour définir à la fois la date et l'heure, utilisez l'option set-time avec le format de la date en AAAA-MM-JJ (Année, Mois, Jour) et l'heure en HH:MM:SS (Heure, Minute et Secondes) :

sudo timedatectl set-time '2026-01-23 12:25:30'

Configuration de la date et de l'heure au format AA:MM:JJ et HH:MM:SS

Comment trouver et régler l'horloge matérielle dans Linux

8. Pour régler votre horloge matérielle à l’heure universelle coordonnée, UTC, utilisez l’option set-local-rtc boolean-value comme suit :

Commencez par vérifier si votre horloge matérielle est réglée sur le fuseau horaire local :

timedatectl | grep local

Réglez votre horloge matérielle selon le fuseau horaire local :

sudo timedatectl set-local-rtc 1

Réglez votre horloge matérielle sur UTC sous Linux

Réglez votre horloge matérielle sur l'heure universelle coordonnée (UTC) :

sudo timedatectl set-local-rtc 0

Réglez votre horloge matérielle sur UTC

Remarque : Il n'est pas recommandé de régler le RTC sur l'heure locale, car cela peut causer des problèmes avec les ajustements liés à l'heure d'été. Il est donc préférable de conserver le RTC en UTC.

Synchronisation de l'horloge système Linux avec un serveur NTP distant

NTP signifie Network Time Protocol et est un protocole Internet utilisé pour synchroniser l'horloge système entre les ordinateurs.

L'utilitaire timedatectl vous permet de synchroniser automatiquement l'horloge de votre système Linux avec un groupe de serveurs distants en utilisant NTP.

La plupart des distributions Linux modernes utilisent différentes implémentations pour la synchronisation NTP :

  • systemd-timesyncd : un client SNTP (Simple NTP) léger intégré à systemd, qui convient à la plupart des configurations de bureau et des serveurs uniques.
  • chrony : Une implémentation NTP complète qui peut fonctionner à la fois comme client et serveur. Elle gère mieux les connexions réseau intermittentes et est plus précise.

Utilisation de systemd-timesyncd

Pour démarrer la synchronisation automatique de l'heure avec un serveur NTP distant, tapez la commande suivante dans le terminal, ce qui activera et démarrera le service systemd-timesyncd.

sudo timedatectl set-ntp true

Pour désactiver la synchronisation de l'heure NTP, tapez la commande suivante dans le terminal.

sudo timedatectl set-ntp false

Pour vérifier l'état de la synchronisation :

timedatectl status

Vous devriez voir « Horloge système synchronisée : oui » et « Service NTP : actif ».

Utilisation de chrony (recommandé pour les serveurs)

Si vous exploitez un serveur ou avez besoin d'une synchronisation horaire plus fiable, chrony est le meilleur choix, et il est particulièrement efficace pour :

  • Systèmes qui ne fonctionnent pas en continu (ordinateurs portables, ordinateurs de bureau).
  • Les serveurs nécessitent une grande précision.
  • Systèmes avec connectivité réseau intermittente.
  • Environnements regroupés où la cohérence temporelle est essentielle.

Tout d'abord, installez chrony (si ce n'est pas déjà fait) :

sudo apt install chrony   [On Debian-based systems]
sudo dnf install chrony   [On RHEL-based systems]

Remarque : L'installation de chrony désactivera automatiquement systemd-timesyncd afin d'éviter les conflits.

Après l'installation, activez, démarrez et vérifiez l'état de la synchronisation :

sudo systemctl enable --now chronyd
timedatectl status

Vérifier l'état de la synchronisation de l'horloge système

Pour utiliser vos propres serveurs NTP au lieu de ceux par défaut, vous devez modifier le fichier de configuration de Chrony.

sudo nano /etc/chrony/chrony.conf
OR
sudo nano /etc/chrony/sources.d/custom.sources

Ajoutez vos serveurs NTP préférés (vous pouvez obtenir une liste de serveurs NTP sur le projet NTP Pool).

pool 0.pool.ntp.org iburst
pool 1.pool.ntp.org iburst
pool 2.pool.ntp.org iburst

Redémarrez chrony après les modifications :

sudo systemctl restart chronyd

Notes importantes sur la synchronisation NTP

  • Vous ne pouvez pas exécuter plusieurs implémentations NTP simultanément, choisissez donc soit systemd-timesyncd, soit chrony.
  • systemd-timesyncd est une implémentation client uniquement et ne peut pas fournir l'heure à d'autres systèmes.
  • chrony peut agir à la fois comme client de temps et serveur de temps pour votre réseau local.
  • Pour les serveurs de production et l'infrastructure critique, chrony est généralement recommandé plutôt que systemd-timesyncd.
  • NTP nécessite que le port UDP 123 soit ouvert pour les connexions sortantes.
Résumé

Ce sont des exemples très simples décrits dans ce tutoriel et j'espère que vous les trouverez utiles pour configurer différentes horloges et fuseaux horaires sur Linux.

Pour en savoir plus sur cet outil, consultez la page de manuel de timedatectl.

man timedatectl

Si vous avez quelque chose à dire sur cet article, n'hésitez pas à laisser un commentaire pour ajouter plus d'informations.