Liens rapides
Le Linux timedatectl
La commande vous permet de définir votre heure, votre date et votre fuseau horaire pour votre horloge système et votre horloge en temps réel. Prenez un moment et nous vous montrerons comment tout cela fonctionne.
Tout est relatif
Le traitement du temps par votre ordinateur est l’une de ces choses auxquelles vous pourriez vous attendre assez simple. Du moins, jusqu’à ce que vous commenciez à vous y intéresser.
L’horloge système Linux compte le nombre de secondes écoulées depuis l’époque Unix. C’était à 00:00:00 le 1er janvier 1970, UTC. UTC signifie temps universel coordonné, mais on parle généralement de temps universel coordonné ou simplement de temps universel. C’est la norme de temps selon laquelle le monde gère et régule le temps. Différents fuseaux horaires appliquent un décalage par rapport à UTC pour obtenir leur heure locale. Certains fuseaux horaires sont en avance sur UTC et d’autres en retard.
L’horloge système des ordinateurs Linux est basée sur un logiciel. Évidemment, il ne peut pas fonctionner lorsque l’ordinateur est éteint. Une autre horloge, une horloge matérielle en temps réel alimentée par batterie, peut fonctionner lorsque l’ordinateur est éteint. Son but est d’indiquer à l’horloge système l’heure qu’il est au démarrage de Linux. Sauf si l’accès à un serveur NTP (Network Time Protocol) est possible.
Les serveurs NTP sont des serveurs qui fournissent des informations horaires précises aux ordinateurs qui en font la demande. Si vous démarrez votre ordinateur ou ordinateur portable et qu’il n’y a pas d’accès Internet — ou s’il n’a pas été configuré pour utiliser des serveurs NTP — l’horloge en temps réel est utilisée pour amorcer l’horloge système au lieu d’un serveur NTP.
L’horloge système est toujours en UTC. Toute application devant acquérir l’heure locale doit :
- Accédez à l’horloge système et obtenez UTC
- Sachez dans quel fuseau horaire il se trouve et appliquez le décalage correct
- Prendre en compte si l’heure d’été est en vigueur
La conversion de l’heure UTC en heure locale est effectuée par l’application et non par l’horloge système. Ou, plus précisément, la conversion est effectuée par les bibliothèques d’heure et de date auxquelles l’application est liée. C’est pourquoi il est essentiel que votre ordinateur sache de quel fuseau horaire il s’agit, quelle est l’heure UTC, combien de secondes se sont écoulées depuis l’époque Unix et si l’heure d’été est en vigueur.
Sur les distributions Linux basées sur systemd, nous utilisons le timedatectl
commande pour voir ou modifier ces paramètres et valeurs.
Premiers pas avec timedatectl
Pour voir les données actuelles, l’heure et d’autres valeurs, utilisez le timedatectl
commande avec l’opérateur d’état.
timedatectl status
En fait, vous pouvez supprimer le statut et vous obtiendrez toujours le même résultat.
timedatectl
Les deux ensembles de résultats affichent :
- Heure locale: L’heure estimée par l’ordinateur, en fonction de son fuseau horaire.
- Temps universel: L’heure UTC.
- Heure RTC: L’heure utilisée par l’horloge en temps réel. Habituellement, c’est UTC.
- Fuseau horaire: Informations concernant le fuseau horaire configuré.
- Horloge système synchronisée: Si l’horloge système est synchronisée avec un serveur NTP.
- Service NTP: indique si le service NTP de l’ordinateur est actif.
- RTC en TZ locale: indique si l’horloge en temps réel utilise l’heure locale au lieu de l’heure UTC.
Vous pouvez voir combien de fuseaux horaires le timedatectl
commande prend en charge en tapant :
timedatectl list-timezones | wc -l
C’est bien plus qu’il n’y en a fuseaux horaires dans le monde. Si nous redirigeons la sortie vers grep
et filtrez les entrées pour « Amérique » et dirigez-les vers less
nous pouvons faire défiler une liste plus gérable.
timedatectl list-timezones | grep "America/" | less
En parcourant cette liste, vous verrez que « l’Amérique » a la signification la plus large possible. La deuxième chose que vous remarquerez est que la plupart des entrées ne sont pas de véritables fuseaux horaires.
Définition du fuseau horaire
Si vous parcourez la liste non filtrée des fuseaux horaires pris en charge par timedatectl
vous verrez des lieux ainsi que des fuseaux horaires. Pour définir un fuseau horaire, vous pouvez le spécifier par son nom comme EST ou GMT, ou vous pouvez choisir un emplacement dans le même fuseau horaire que vous, comme Londres ou New York.
Réinitialiser votre fuseau horaire n’est pas quelque chose que vous ferez souvent, mais peut-être avez-vous déménagé ou travaillez-vous pendant un certain temps et souhaitez-vous localiser votre ordinateur portable. Si vous devez réinitialiser votre fuseau horaire, choisissez un emplacement dans le fuseau horaire que vous souhaitez utiliser.
Nous allons régler cet ordinateur sur l’heure des Rocheuses, qui est le même fuseau horaire qu’Edmonton. Nous verrons ensuite comment les paramètres ont changé.
timedatectl set-timezone "America/Edmonton"
timedatectl
Notre fuseau horaire a été modifié, notre heure locale a changé et notre décalage par rapport à UTC a augmenté.
Réglage manuel de l’heure et de la date
Bien qu’il soit possible de régler manuellement l’heure et la date, vous n’en aurez généralement pas besoin. L’utilisation de la synchronisation de l’heure et de NTP constitue le moyen privilégié pour garantir l’exactitude de l’heure et de la date de votre ordinateur. Si vous essayez de modifier la date ou l’heure de votre ordinateur, vous obtiendrez probablement une erreur vous indiquant que la synchronisation de l’heure est en cours d’utilisation.
timedatectl set-time 10:30:00
Utilisez cette commande pour désactiver le service de synchronisation de l’heure :
sudo systemctl stop systemd-timesyncd.service
Vous pouvez régler l’heure, la date ou les deux à l’aide du bouton timedatectl
opérateur de réglage du temps. les dates sont dans l’ordre année-mois-jour AAA-MM-JJ et l’heure est dans l’ordre heures-minutes-secondes HH:MM:SS. Nous allons régler l’heure et la date avec cette commande :
timedatectl set-time "2022-01-30 10:30:00"
Nous vérifierons ensuite que les modifications ont bien eu lieu, en utilisant timedatectl
.
timedatectl
La date et l’heure ont changé. Notez également que l’ordinateur utilise une fausse heure UTC. Nous sommes également informés que l’horloge système n’est pas synchronisée et que le service NTP est inactif.
Si vous avez accès à Internet, dès que vous restaurez le service de synchronisation de l’heure, l’heure est récupérée et tous les détails sont correctement réinitialisés.
sudo systemctl start systemd-timesyncd.service
timedatectl
RTC : UTC ou LTZ ?
Il est possible de régler votre horloge en temps réel sur l’heure de votre fuseau horaire local au lieu de l’UTC — possible, mais déconseillé. Si vous effectuez la modification, vous verrez un avertissement concernant les effets désastreux que cela pourrait avoir sur votre système à l’avenir.
La raison pour laquelle nous vous montrons cette méthode est que vous pourriez rencontrer une machine sur laquelle elle rencontre d’étranges problèmes avec ses paramètres d’heure. Voici comment remettre l’horloge en temps réel sur UTC.
Tout d’abord, nous devrons le définir sur le fuseau horaire local.
timedatectl set-local-rtc 1
Ensuite, nous demanderons timedatectl
pour son statut.
timedatectl
Je pense qu’ils ont exprimé clairement leurs sentiments.
Pour restaurer l’horloge temps réel à UTC, utilisez cette commande :
timedatectl set-local-rtc 0
Réglez-le et oubliez-le
À moins que vous ayez commis une erreur lors de l’installation de votre distribution Linux ou que vous déménagiez, il n’y a généralement aucune raison de modifier les paramètres de votre système et vos horloges en temps réel.
Réglez l’horloge système sur votre fuseau horaire, l’horloge en temps réel sur UTC et assurez-vous que votre système interroge un serveur de protocole de temps réseau. C’est l’état par défaut après la plupart des installations.
S’ils sont tous configurés, les systèmes horaires de votre ordinateur se chargeront d’eux-mêmes.