Comment configurer le fuseau horaire et l’horloge système sous Linux ?

Dans ce tutoriel, nous allons voir comment modifier les paramètres de votre fuseau horaire sous Linux et comment utiliser NTP pour synchroniser l’horloge du système Linux avec votre fuseau horaire.

Didacticiel Vidéo:

Vérifier les paramètres du fuseau horaire

Vérifiez les paramètres du fuseau horaire actuel.

date

sortie :

Fri May 20 13:36:53 UTC 2022

Comme vous pouvez le voir, le fuseau horaire de mon système est réglé sur UTC(Universal Time Coordinated). Mais je vis actuellement en Chine. J’ai donc besoin de changer les paramètres du fuseau horaire de UTC à CST (China Standard Time).

Changer le fuseau horaire sur les distros Linux basées sur Debian

Sur les distros Linux basées sur Debian, y compris Debian, Ubuntu, Linux Mint, Elementary OS, etc., vous pouvez modifier vos paramètres de fuseau horaire avec cette commande.

sudo dpkg-reconfigure tzdata

Une boîte de dialogue s’ouvrira dans le terminal pour vous permettre de sélectionner votre zone géographique.

select the city or region corresponding to your time zone.

Après avoir cliqué sur le bouton OK, l’horloge de votre système sera immédiatement remplacée par celle de votre fuseau horaire.

Une méthode agnostique pour modifier les paramètres du fuseau horaire

Cette méthode fonctionne sur toutes les distributions Linux. Tout d’abord, ouvrez un terminal et tapez cette commande :

sudo ln -sf /usr/share/zoneinfo/

N’appuyez pas encore sur la touche Entrée, appuyez sur la touche Tab à la place.

change time zone settings

Une liste de zones géographiques apparaîtra, entrez maintenant le nom de votre zone après sudo ln -sf /usr/share/zoneinfo/. Par exemple, j’ai entré Asia. Puis appuyez à nouveau sur la touche Tab. Une liste de villes apparaîtra.

change time zone settings in terminal

Entrez le nom de la ville correspondant à votre fuseau horaire. Par exemple, j’ai entré Shanghai. Maintenant, appuyez sur la touche espace et entrez /etc/localtime. La commande finale sera donc

sudo ln -sf /usr/share/zoneinfo/votre-zone-géographique/votre-ville /etc/localtime

Appuyez sur Entrée pour exécuter cette commande. Elle créera un lien symbolique pointant le fichier /etc/localtime vers votre fichier de fuseau horaire spécifique. L’horloge de votre système sera immédiatement mise à jour, comme vous pouvez le constater en entrant la commande date dans le terminal. Mais les utilisateurs d’un environnement de bureau tel que XFCE doivent se déconnecter et se reconnecter pour voir les changements dans la barre des tâches.

Horloge en temps réel

RTC signifie horloge en temps réel, également connue sous le nom d’horloge matérielle. Cette horloge est alimentée par la pile CMOS de la carte mère de votre ordinateur. Cette horloge fonctionne en permanence, même si vous éteignez votre ordinateur. Parfois, l’heure RTC est incorrecte.

Pour connaître l’heure RTC de votre ordinateur, exécutez cette commande :

timedatectl

Sortie :

               Heure locale : Fri 2022-05-20 21:42:26 08 Temps universel : Fri 2022-05-20 13:42:26 UTC Heure RTC : Fri 2022-05-20 13:42:26 Fuseau horaire : Asie/Singapour ( 08, 0800)Horloge système synchronisée : oui Service NTP : actif RTC dans TZ local : non

Comme vous pouvez le constater, mon heure locale est maintenant 21:42:26, mais l’heure RTC est 13:42:26. L’heure RTC n’est pas dans mon fuseau horaire local et cela peut parfois causer des problèmes si l’heure RTC est imprécise. L’heure RTC n’est pas fiable.

Pour que votre système lise l’heure RTC en standard UTC, exécutez la commande suivante.

timedatectl set-local-rtc 0

Pour que votre système lise l’heure RTC dans le fuseau horaire local, exécutez cette commande

timedatectl set-local-rtc 1

Il est recommandé que votre système lise l’heure RTC en standard UTC pour éviter tout comportement inattendu.

Synchronisation de l’horloge système avec votre fuseau horaire

Parfois, l’horloge de votre système peut être incorrecte même si vous avez défini le bon fuseau horaire. Pour vous assurer que l’horloge de votre système est synchronisée avec votre fuseau horaire local, vous avez besoin du protocole NTP (Network Time Protocol).

Le rôle de NTP’ est de fournir une heure exacte sur votre réseau et de nombreux services ont besoin d’une heure exacte pour fonctionner correctement. NTP synchronise l’horloge sur votre réseau afin que l’heure soit aussi précise que possible. Il s’agit d’un protocole de couche application qui utilise UDP comme protocole de couche transport. Les serveurs de temps du réseau obtiennent leur heure à partir d’horloges atomiques.

Sur systemd, vous pouvez activer la synchronisation NTP en utilisant timedatectl.

sudo timedatectl set-ntp true

La commande ci-dessus va démarrer et activer le service systemd-timesyncd. Maintenant, vérifiez le statut.

timedatectl status

sortie :

               Heure locale : Fri 2022-05-20 21:45:34 08 Temps universel : Fri 2022-05-20 13:45:34 UTC Heure RTC : Fri 2022-05-20 13:45:34 Fuseau horaire : Asie/Singapour ( 08, 0800)Horloge système synchronisée : oui  Service NTP : actif RTC dans TZ local : non

Vous pouvez constater que l’horloge système est synchronisée et que le service NTP est activé. Pour vérifier l’état de timesyncd:

sudo systemctl status systemd-timesyncd

Sortie :

● systemd-timesyncd.service - Network Time Synchronization Loaded : loaded (/usr/lib/systemd/system/systemd-timesyncd.service ; enabled ; vendor preset : enabled) Active : active (running) since Mon 2022-05-09 17:47:54 CST ; 1h 37min ago Docs : man:systemd-timesyncd.service(8)Main PID : 2243 (systemd-timesyn) Status : "Synchronisation avec le serveur de temps 202.112.29.82:123 (0.arch.pool.ntp.org)." Tâches : 2 (limite : 512) CGroup : /system.slice/systemd-timesyncd.service └─2243 /usr/lib/systemd/systemd-timesyncd

Chrony

Si l’horloge système ne peut’ pas être synchronisée avec un serveur NTP, vous pouvez également essayer chrony, qui est une implémentation polyvalente du Network Time Protocol. Exécutez la commande suivante pour l’installer. (Remarque : si votre système possède le paquetage systemd-timesyncd, chrony le supprimera de votre système).

  • Debian/Ubuntu : sudo apt install chrony
  • CentOS/RHEL/Fedora : sudo dnf install chrony
  • Arch Linux : sudo pacman -S chrony
  • OpenSUSE : sudo zypper install chrony

Après son installation, démarrez-le avec :

sudo systemctl enable --now chrony

Vérifiez son état :

sudo systemctl status chrony

Exemple de sortie

 chrony.service - chrony, un client/serveur NTP Loaded : loaded (/lib/systemd/system/chrony.service ; enabled ; vendor preset : enabled) Active : active (running) since Thu 2022-04-21 23:40:55 CST ; 4 weeks 0 days ago Docs : man:chronyd(8) man:chronyc(1) man:chrony.conf(5) Process : 11030 ExecStart=/usr/lib/systemd/scripts/chronyd-starter.sh $DAEMON_OPTS (code=exited, status=0/SUCCESS) PID principal : 11039 (chronyd) Tâches : 2 (limite : 3676) Mémoire : 1.4M CPU : 168ms CGroup : /system.slice/chrony.service ├─11039 /usr/sbin/chronyd -F 1 └─11040 /usr/sbin/chronyd -F 1Apr 21 23:40:55 systemd[1] : Starting chrony, an NTP client/server...Apr 21 23:40:55 chronyd[11039] : chronyd version 4.2 starting ( CMDMON NTP REFCLOCK RTC PRIVDROP SCFILTER SIGND ASYNCDNS NTS SECHASH IPV6 -DEBUG)Apr 21 23:40:55 chronyd[11039] : Utilisation du fuseau horaire right/UTC pour obtenir des données sur les secondes intercalairesAvr 21 23:40:55 chronyd[11039] : Chargé le filtre seccomp (niveau 1)21 avr. 23:40:55 systemd[1] : Démarré chrony, un client/serveur NTPAvr 21 23:41:12 chronyd[11039] : Source sélectionnée 38.229.62.9 (0.ubuntu.pool.ntp.org)21 avr. 23:41:12 chronyd[11039] : L'horloge système a été décalée de 2496258.787751 secondesMai20 21:05:31 chronyd[11039] : L 'horloge système a été décalée de 2496258.787751 secondesMai 20 21:05:31 chronyd[11039] : Décalage TAI de l'horloge système réglé sur 37 secondes

Comme vous pouvez le voir, chrony a trouvé que l’horloge système est fausse et l’a automatiquement synchronisée avec le serveur de temps du réseau (0.ubuntu.pool.ntp.org).

Scroll to Top