Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

Chapitre 2. Configurer l'heure et la date

Les systèmes d'exploitation modernes font la distinction entre les deux types d'horloges suivants :
  • Une horloge temps réel (« Real-Time Clock », ou RTC), communément appelée horloge matérielle, (habituellement un circuit intégré sur la carte système) est complètement indépendante de l'état actuel du système d'exploitation et fonctionne même lorsque l'ordinateur est éteint.
  • Une horloge système, également appelée horloge logicielle, est habituellement maintenue par le noyau et sa valeur initiale est basée sur l'horloge temps réel. Une fois le système démarré et l'horloge système initialisée, celle-ci est entièrement indépendante de l'horloge temps réel.
Le temps système est toujours conservé sous le format du temps universel coordonné (« Coordinated Universal Time », ou UTC) puis converti dans les applications au temps local selon les besoins. Le temps local correspond à l'heure réelle dans votre fuseau horaire et prend en compte l'heure d'été (« daylight saving time », ou DST). L'horloge temps réel peut utiliser l'heure UTC ou l'heure locale. L'heure UTC est recommandée.
Red Hat Enterprise Linux 7 offre trois outils de ligne de commande pouvant être utilisés pour configurer et afficher des informations sur l'heure et la date du système : l'utilitaire timedatectl, qui est nouveau sur Red Hat Enterprise Linux 7 et fait partie de systemd ; la commande traditionnelle date ; et l'utilitaire hwclock pour accéder à l'horloge matérielle.

2.1. Utilisation de la commande timedatectl

L'utilitaire timedatectl est distribué dans le cadre du gestionnaire de services et systèmes systemd et permet de réviser et modifier la configuration de l'horloge système. Vous pouvez utiliser cet outil pour modifier l'heure et la date actuelle, pour définir le fuseau horaire, ou pour activer la synchronisation automatique de l'horloge système avec un serveur distant.
Pour obtenir des informations sur la manière d'afficher l'heure et la date actuelle sous un format personnalisé, veuillez également consulter la Section 2.2, « Utiliser la commande date ».

2.1.1. Afficher l'heure et la date actuelle

Pour afficher l'heure et la date actuelle, ainsi que des informations détaillées sur la configuration de l'horloge système et de l'horloge matérielle, veuillez exécuter la commande timedatectl sans aucune autre option de ligne de commande :
timedatectl
Ceci affiche l'heure locale et universelle, le fuseau horaire en cours d'utilisation, le statut de la configuration NTP (« Network Time Protocol »), ainsi que des informations supplémentaires liées à DST.

Exemple 2.1. Afficher l'heure et la date actuelle

Voici un exemple de la sortie de commande timedatectl sur un système qui n'utilise pas NTP pour synchroniser l'horloge système avec un serveur distant :
~]$ timedatectl
      Local time: Mon 2013-09-16 19:30:24 CEST
  Universal time: Mon 2013-09-16 17:30:24 UTC
        Timezone: Europe/Prague (CEST, +0200)
     NTP enabled: no
NTP synchronized: no
 RTC in local TZ: no
      DST active: yes
 Last DST change: DST began at
                  Sun 2013-03-31 01:59:59 CET
                  Sun 2013-03-31 03:00:00 CEST
 Next DST change: DST ends (the clock jumps one hour backwards) at
                  Sun 2013-10-27 02:59:59 CEST
                  Sun 2013-10-27 02:00:00 CET

Important

Les changements au statut de chrony ou à ntpd ne seront pas notés immédiatement par timedatectl. S'il y a eu des changements de configuration ou de statut à ces outils, saisir la commande suivante :
~]# systemctl restart systemd-timedated.services

2.1.2. Modifier l'heure actuelle

Pour modifier l'heure actuelle, veuillez saisir ce qui suit dans l'invite de shell en tant qu'utilisateur root:
timedatectl set-time HH:MM:SS
Veuillez remplacer HH par les heures, MM par les minutes, et SS par les secondes, le tout doit être saisi sous un format à deux chiffres.
Cette commande met à jour l'heure système et l'horloge matérielle. Le résultat est similaire à l'utilisation des commandes date --set et hwclock --systohc.
La commande échouera si un service NTP est activé. Voir Section 2.1.5, « Synchroniser l'horloge système avec un serveur à distance » pour désactiver le service de façon temporaire.

Exemple 2.2. Modifier l'heure actuelle

Pour modifier l'heure actuelle à 11:26 p.m. (23h26), veuillez exécuter la commande suivante en tant qu'utilisateur root :
~]# timedatectl set-time 23:26:00
Par défaut, le système est configuré pour utiliser l'heure UTC. Pour configurer votre système à maintenir l'horloge à l'heure locale, veuillez exécuter la commande timedatectl avec l'option set-local-rtc en tant qu'utilisateur root :
timedatectl set-local-rtc boolean
Pour configurer votre système afin de maintenir l'horloge à l'heure locale, veuillez remplacer boolean par yes (ou bien par y, true, t, ou 1). Pour configurer le système de manière à utiliser UTC, veuillez remplacer boolean par no (ou bien par, n, false, f, ou 0). L'option par défaut est no.

2.1.3. Modifier la date actuelle

Pour modifier la date actuelle, veuillez saisir ce qui suit dans l'invite de shell en tant qu'utilisateur root:
timedatectl set-time YYYY-MM-DD
Veuillez remplacer YYYY par une année à quatre chiffres, MM par un mois à deux chiffres, et DD par un jour du mois à deux chiffres.
Veuillez remarquer que modifier la date sans spécifier l'heure actuelle fera que l'heure sera paramétrée sur 00:00:00.

Exemple 2.3. Modifier la date actuelle

Pour modifier la date actuelle sur le 2 juin 2013 et garder la même heure (11:26 p.m., ou 23h26), veuillez exécuter la commande suivante en tant qu'utilisateur root :
~]# timedatectl set-time '2013-06-02 23:26:00'

2.1.4. Modifier le fuseau horaire

Pour répertorier tous les fuseaux horaire disponibles, veuillez saisir ce qui suit dans une invite de shell :
timedatectl list-timezones
Pour modifier le fuseau horaire en cous d'utilisation, veuillez saisir ce qui suit en tant qu'utilisateur root :
timedatectl set-timezone time_zone
Veuillez remplacer time_zone par l'une des valeurs répertoriées par la commande timedatectl list-timezones.

Exemple 2.4. Modifier le fuseau horaire

Pour identifier le fuseau horaire le plus proche de votre location actuelle, veuillez utiliser la commande timedatectl avec l'option de ligne de commande list-timezones. Par exemple, pour répertorier tous les fuseaux horaires en Europe, veuillez saisir :
~]# timedatectl list-timezones | grep Europe
Europe/Amsterdam
Europe/Andorra
Europe/Athens
Europe/Belgrade
Europe/Berlin
Europe/Bratislava
Pour changer le fuseau horaire sur Europe/Prague, veuillez saisir ce qui suit en tant qu'utilisateur root :
~]# timedatectl set-timezone Europe/Prague

2.1.5. Synchroniser l'horloge système avec un serveur à distance

Contrairement aux ajustements manuels décrits dans les sections précédentes, la commande timedatectl vous permet également d'activer la synchronisation automatique de votre horloge système avec un groupe de serveurs à distance en utilisant le protocole NTP. L'activation de NTP active chronyd ou ntpd, selon le service installé.
Le service NTP peut être activé et désactivé par une commande sur le modèle suivant :
timedatectl set-ntp boolean
Pour activer votre système pour synchroniser l'horloge système avec un serveur NTP à distance, veuillez remplacer boolean par yes (option par défaut). Pour désactiver cette fonctionnalité, veuillez remplacer boolean par no.

Exemple 2.5. Synchroniser l'horloge système avec un serveur à distance

Pour activer la synchronisation automatique de l'horloge système avec un serveur à distance, veuillez saisir :
~]# timedatectl set-ntp yes
La commande échouera si un service NTP n'est pas installé. Voir Section 15.3.1, « Installer Chrony » pour plus d'informations.