Recherche de site Web

Comment définir 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 utilisée dans les distributions Linux basées sur les démons ‘sysvinit‘.

La commande timedatectl vous permet d'interroger 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 pour 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, et cela peut avoir les avantages suivants :

  • Maintenez le fonctionnement en temps voulu des tâches du système puisque la plupart des tâches sous Linux sont contrôlées par le temps.
  • Heure exacte pour l'enregistrement des événements et d'autres informations sur le système.
  • Synchronisation appropriée pour les systèmes et applications distribués.
  • Essentiel pour les protocoles de sécurité tels que 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

Dans la sortie ci-dessus, le temps RTC est 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 afficher votre fuseau horaire actuel, faites-le comme suit :

timedatectl 
OR
timedatectl | grep Time

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

timedatectl list-timezones

4. Pour trouver le fuseau horaire local en fonction de 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.*"

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

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

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

sudo timedatectl set-timezone UTC
timedatectl status

Vous devez taper le nom correct du fuseau horaire, sinon vous risquez d'obtenir des erreurs lors du changement de fuseau horaire. Dans l'exemple suivant, le fuseau horaire « Asia/Kolkata » n'est pas correct, ce qui provoque donc 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 :

Définir l'heure sous Linux

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

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

Vous pouvez obtenir 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

7. Pour définir à la fois la date et l'heure, utilisez l'option set-time avec le format de date en YYYY-MM-DD (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'

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

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

Tout d'abord, découvrez si votre horloge matérielle est réglée sur le fuseau horaire local :

timedatectl | grep local

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

sudo timedatectl set-local-rtc 1

Réglez votre horloge matérielle sur le temps universel coordonné (UTC) :

sudo timedatectl set-local-rtc 0

Remarque : Il n'est pas recommandé de régler le RTC sur l'heure locale et cela peut provoquer des problèmes avec les ajustements de l'heure d'été, il est donc préférable de garder 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 de serveur unique.
  • chrony : une implémentation complète de NTP qui peut agir à la fois comme client et serveur. Il gère mieux les connexions réseau intermittentes et est plus précis.

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 gérez un serveur ou avez besoin d'une synchronisation temporelle 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 une connectivité réseau intermittente.
  • Environnements regroupés où la cohérence temporelle est cruciale.

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 pour é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

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 depuis 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 uniquement cliente et ne peut pas fournir l'heure à d'autres systèmes.
  • chrony peut agir à la fois comme client temporel et comme serveur temporel pour votre réseau local.
  • Pour les serveurs de production et les infrastructures critiques, 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 régler les différentes horloges et fuseaux horaires du système Linux.

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

man timedatectl

Si vous avez quelque chose à dire à propos de cet article, n'hésitez pas à laisser un commentaire pour ajouter toute information supplémentaire.