Gestion des fuseaux horaires et de l'heure : commandes timedatectl
1. Travailler avec le temps dans Linux
Pourquoi est-il important de bien configurer l'heure ?
Imagine que tu essaies de suivre une erreur dans le journal système, mais que l'heure des logs ne correspond pas à l'heure réelle. Ou pire encore, ton serveur dans une entreprise internationale affiche des heures différentes pour différents utilisateurs. Une bonne configuration de l'heure, ce n'est pas juste une question de confort : c'est super important pour le bon fonctionnement des systèmes, la synchronisation des fichiers, le maintien de la sécurité (les certificats SSL dépendent de l'heure) et la coordination des tâches de travail.
Dans Linux, le temps peut être représenté sous deux formes :
- Temps système (System Time) — c'est le temps que le système d'exploitation utilise pour ses tâches.
- Temps matériel (Hardware Time) — il est stocké au niveau du matériel (BIOS/UEFI).
On va travailler avec le temps système via l'outil timedatectl
.
2. Bases de la commande timedatectl
timedatectl
est un utilitaire en ligne de commande qui fournit une interface pratique pour gérer l'heure. Il permet de :
- Vérifier les paramètres actuels de l'heure et du fuseau horaire ;
- Configurer l'heure système et matérielle ;
- Paramétrer les fuseaux horaires ;
- Activer et désactiver la synchronisation de l'heure avec NTP (Network Time Protocol).
Vérifier l'heure actuelle
Commençons par le plus simple. Pour connaître l'heure actuelle et les paramètres, exécutez la commande :
timedatectl
Exemple de sortie :
Local time: Tue 2023-10-31 12:34:56 MSK
Universal time: Tue 2023-10-31 09:34:56 UTC
RTC time: Tue 2023-10-31 09:34:56
Time zone: Europe/Moscow (MSK, +0300)
System clock synchronized: yes
NTP service: active
RTC in local TZ: no
Explication des champs :
- Local time: Heure locale (système).
- Universal time: Heure au format UTC (temps universel coordonné).
- RTC time: Heure matérielle (au niveau du BIOS/UEFI).
- Time zone: Fuseau horaire actuel.
- System clock synchronized: Si l'horloge est synchronisée via NTP.
- NTP service: Si le service de synchronisation de l'heure est actif.
- RTC in local TZ: Si l'heure matérielle correspond à votre fuseau horaire local.
Configurer et changer le fuseau horaire
Parfois, après un déménagement ou des exigences différentes pour un projet, vous devrez peut-être changer le fuseau horaire. Par exemple, votre serveur était configuré pour New York, mais il sert maintenant des utilisateurs basés à Moscou. Les fuseaux horaires se trouvent dans le répertoire /usr/share/zoneinfo
.
Pour voir les fuseaux horaires disponibles, exécutez :
timedatectl list-timezones
La sortie sera une liste énorme du type :
Africa/Abidjan
America/New_York
Asia/Tokyo
Europe/Moscow
Pour définir un nouveau fuseau horaire, utilisez la commande :
sudo timedatectl set-timezone Europe/Moscow
Vérifiez que le fuseau horaire a changé :
timedatectl
Exercice pratique
- Trouvez le fuseau horaire actuel de votre serveur.
- Changez le fuseau horaire en UTC.
- Réinitialisez le fuseau horaire à votre fuseau local.
3. Configuration manuelle de l'heure
Même si les serveurs modernes synchronisent généralement l'heure via NTP, il peut parfois être nécessaire de régler manuellement l'heure. C'est utile si le serveur se trouve dans un réseau isolé sans accès à Internet.
Pour commencer, tu peux vérifier l'heure système actuelle :
date
Tu peux définir une nouvelle heure avec la commande :
sudo timedatectl set-time "YYYY-MM-DD HH:MM:SS"
Par exemple, pour régler l'heure au 1er novembre 2023, 12:00 :
sudo timedatectl set-time "2023-11-01 12:00:00"
Ensuite, vérifie à nouveau le résultat :
timedatectl
Configuration de l'horloge matérielle
L'horloge matérielle (aussi connue sous le nom de RTC — Real-Time Clock) est gérée au niveau du BIOS/UEFI. Si l'horloge matérielle n'est pas synchronisée avec l'heure système, cela peut causer des problèmes lors du redémarrage. Pour synchroniser, exécute :
sudo hwclock --systohc
Cette commande va définir l'horloge matérielle en fonction de l'heure système.
Si tu as besoin de faire l'inverse (synchroniser l'heure système avec l'horloge matérielle), utilise :
sudo hwclock --hctosys
4. Synchronisation du temps avec NTP
La synchronisation du temps avec NTP est une méthode pour garder automatiquement l'heure à jour en utilisant des serveurs distants. Dans la plupart des distributions Linux modernes, NTP est activé par défaut.
Vérification de la configuration NTP
Exécutez :
timedatectl status
Si NTP est désactivé (la ligne NTP service indiquera inactive
), activez-le :
sudo timedatectl set-ntp true
Pour désactiver NTP, exécutez :
sudo timedatectl set-ntp false
Si NTP ne fonctionne pas, assurez-vous que les services correspondants sont actifs. Par exemple, sur les systèmes avec systemd-timesyncd
, vérifiez que le service est actif :
sudo systemctl status systemd-timesyncd
5. Exercice pratique
Tâche
- Réglez le fuseau horaire de votre système sur UTC.
- Définissez manuellement l'heure système sur 12:00:00, 1 novembre 2023.
- Activez la synchronisation du temps via NTP.
Vérification
Après avoir terminé la tâche, assurez-vous que :
- Votre heure système correspond aux paramètres définis.
- Le fuseau horaire a été modifié en UTC.
- Le service NTP est actif.
6. Erreurs fréquentes et pièges
"RTC in local TZ: no" ne correspond pas au fuseau horaire local. De nombreux systèmes préfèrent utiliser UTC pour l'heure matérielle afin d'éviter toute confusion en travaillant dans différents fuseaux horaires. Ce n'est pas une erreur, mais plutôt une préférence.
Erreur d'accès lors de la modification du temps. La commande
timedatectl
nécessite les privilèges superutilisateur. Assure-toi d'utilisersudo
.La synchronisation NTP ne s'active pas. Vérifie si le service NTP fonctionne sur ton serveur. Par exemple, pour
systemd-timesyncd
exécute :sudo systemctl start systemd-timesyncd
Pourquoi est-ce utile en pratique ?
- Administration des serveurs. Configurer l'heure et les fuseaux horaires est essentiel pour le bon fonctionnement des journaux, la synchronisation des données et la planification des tâches.
- Travailler sur des projets internationaux. Utiliser UTC comme standard aide à éviter les confusions en travaillant avec des clients de différents fuseaux horaires.
- Entrevues et certifications. Les questions sur
timedatectl
et la gestion du temps apparaissent dans les examens et entretiens pour des postes d'administrateur système.
Maintenant, tu es prêt à gérer le temps sous Linux comme tu gères tes deadlines : avec assurance, précision et sans mauvaises surprises.
GO TO FULL VERSION