« LINUX:Date et heure » : différence entre les versions

De WIKI sur Linux (ADB)
Aller à la navigation Aller à la recherche
Aucun résumé des modifications
Aucun résumé des modifications
Ligne 4 : Ligne 4 :
----
----
=But=
=But=
Le réglage de la date et de l'heure sont importantes et pour certaines applications, il est impérative qu'elles soient synchrones entre les différentes machines. Nous allons passer en revue quelques points importants à configurer.
Le réglage de la date et de l'heure est important et pour certaines applications, il est impératif qu'elles soient synchrones entre les différentes machines. Par exemple, l'application Pacemaker que nous avons déjà rencontrée. Nous allons passer en revue quelques points importants à configurer.




Ligne 11 : Ligne 11 :


==Historique==
==Historique==
Anciennement on réglait la date et l'heure dans le BIOS et c'est elle qui faisait foi. Cette configuration existe toujours et permet un mise à l'heure grossière. Actuellement on utilise l'heure donnée par un ensemble de serveurs de temps mondiaux qui servent de référence. Par ce moyen, on est sûr que toutes nos machines ont la même heure et la bonne.
Anciennement on réglait la date et l'heure dans le BIOS et c'est elle qui faisait foi. Cette configuration existe toujours et permet une mise à l'heure grossière. Actuellement on utilise l'heure donnée par un ensemble de serveurs de temps mondiaux qui servent de référence. Par ce moyen, on est sûr que toutes nos machines ont la même heure et la bonne.


Anciennement on utilisait le service NTP qui travaillait comme serveur et client mais sous Fedora, le service Chrony est préféré. Il est installé d'office.
Anciennement on utilisait le service NTP qui travaillait comme serveur et client mais sous Fedora, le service Chrony est préféré. Il est installé d'office.
Ligne 29 : Ligne 29 :


==Activation et lancement==
==Activation et lancement==
Pour activer et lancer ce service, on exécute les commandes suivants classiques des services:
Pour activer et lancer ce service, on exécute les commandes suivants classiques pour les services:
  systemctl enable chronyd.service
  systemctl enable chronyd.service
  systemctl start chronyd.service
  systemctl start chronyd.service
Ligne 44 : Ligne 44 :


==Vérification==
==Vérification==
La commande suivante permet de vérifier le bon fonctionnement:
La commande suivante permet de vérifier le bon fonctionnement du service:
  chronyc sources -a -v
  chronyc sources -a -v
qui donne par exemple:
qui donne par exemple:
Ligne 63 : Ligne 63 :
  ^- ntp.rack66.net                2  6  377    48  +147us[ +147us] +/-  37ms
  ^- ntp.rack66.net                2  6  377    48  +147us[ +147us] +/-  37ms
----
----
Ces quatre dernières lignes nous l'assurent.
Ces quatre dernières lignes nous l'assurent; quatre serveurs de temps sont comparés.




=Réglage=
=Réglages=
C'est bien de récupérer l'heure mais il faut que le paramétrage du système soit adéquat.
C'est bien de récupérer l'heure mais il faut que le paramétrage du système soit adéquat pour être pleinement fonctionnel.




Ligne 103 : Ligne 103 :
  timedatectl set-timezone Europe/Brussels
  timedatectl set-timezone Europe/Brussels


Cette opération met à jour le lien entre le fichier "/etc/localtime" et le fichier de référence de notre fuseau horaire.
Cette opération met à jour le lien symbolique entre le fichier "/etc/localtime" et le fichier de référence de notre fuseau horaire.


On peut le vérifier par le moyen suivant:
On peut le vérifier par le moyen suivant:
Ligne 112 : Ligne 112 :
----
----


Au lieu d'utiliser la commande "timedatectl", on peut adapter directement ce lien.
Au lieu d'utiliser la commande "timedatectl", on peut adapter directement ce lien symbolique.




Ligne 120 : Ligne 120 :
  System clock synchronized: yes
  System clock synchronized: yes
----
----
nous renseigne que le service Chrony est permet la synchronisation des horloges. Si ce n'est pas le cas, il faut vérifier le bon fonctionnement de ce service.
nous renseigne que le service Chrony permet la synchronisation des horloges. Si ce n'est pas le cas, il faut vérifier le bon fonctionnement de ce service.




Ligne 148 : Ligne 148 :
  UTC
  UTC
----
----





Version du 22 mai 2023 à 17:31


retour au menu de Linux


But

Le réglage de la date et de l'heure est important et pour certaines applications, il est impératif qu'elles soient synchrones entre les différentes machines. Par exemple, l'application Pacemaker que nous avons déjà rencontrée. Nous allons passer en revue quelques points importants à configurer.


Service Chrony

Historique

Anciennement on réglait la date et l'heure dans le BIOS et c'est elle qui faisait foi. Cette configuration existe toujours et permet une mise à l'heure grossière. Actuellement on utilise l'heure donnée par un ensemble de serveurs de temps mondiaux qui servent de référence. Par ce moyen, on est sûr que toutes nos machines ont la même heure et la bonne.

Anciennement on utilisait le service NTP qui travaillait comme serveur et client mais sous Fedora, le service Chrony est préféré. Il est installé d'office.


Configuration

Le fichier de configuration est "/etc/chrony.conf" et si nécessaire "/etc/chrony.key".

Normalement, il n'y a rien à faire. Il faut par contre vérifier de temps à autre s'il y a une nouvelle version de ce fichier ajoutée lors des mises à jour. Si le fichier "/etc/chrony.conf.rpmnew" est présent, après vérification, remplacez le fichier "/etc/chrony.conf" par celui-ci.

Assurez-vous que l'option "pool" en début de fichier est bien configurée surtout si vous utilisez un adressage IP fixe. Dans mon cas, elle se présente comme suit:


pool 2.fedora.pool.ntp.org iburst

Elle définit un ensemble de serveurs de temps de référence.


Activation et lancement

Pour activer et lancer ce service, on exécute les commandes suivants classiques pour les services:

systemctl enable chronyd.service
systemctl start chronyd.service

et pour le relancer:

systemctl restart chronyd.service

Il est normalement activé dès l'installation.


Firewall

Cette récupération de l'heure nécessite un accès en sortie vers Internet. Il faut que cet accès soit ouvert dans notre Firewall:

-A OUTPUT -p tcp -m tcp --dport 123 -j ACCEPT
-A OUTPUT -p udp -m udp --dport 123 -j ACCEPT


Vérification

La commande suivante permet de vérifier le bon fonctionnement du service:

chronyc sources -a -v

qui donne par exemple:


  .-- Source mode  '^' = server, '=' = peer, '#' = local clock.
 / .- Source state '*' = current best, '+' = combined, '-' = not combined,
| /             'x' = may be in error, '~' = too variable, '?' = unusable.
||                                                 .- xxxx [ yyyy ] +/- zzzz
||      Reachability register (octal) -.           |  xxxx = adjusted offset,
||      Log2(Polling interval) --.      |          |  yyyy = measured offset,
||                                \     |          |  zzzz = estimated error.
||                                 |    |           \
MS Name/IP address         Stratum Poll Reach LastRx Last sample
===============================================================================
^* ntp.ulyssis.student.kule>     2   6   377    48   -279us[ -338us] +/- 8158us
^- webserver.discosmash.com      3   6   377    47  +1358us[+1358us] +/-   68ms
^- dns-rec-2-brudie.belnet.>     2   6   377    48   +164us[ +105us] +/-   44ms
^- ntp.rack66.net                2   6   377    48   +147us[ +147us] +/-   37ms

Ces quatre dernières lignes nous l'assurent; quatre serveurs de temps sont comparés.


Réglages

C'est bien de récupérer l'heure mais il faut que le paramétrage du système soit adéquat pour être pleinement fonctionnel.


Statut

La commande suivante permet d'afficher quelques informations utiles:

timedatectl status

qui donne par exemple:


               Local time: lun 2023-05-22 12:31:16 CEST
           Universal time: lun 2023-05-22 10:31:16 UTC
                 RTC time: lun 2023-05-22 10:31:16
                Time zone: Europe/Brussels (CEST, +0200)
System clock synchronized: yes
              NTP service: active
          RTC in local TZ: no


Time Zone

Je suis en Belgique; j'utilise donc le fuseau horaire de Bruxelles en Europe (4ème ligne). Suivant l'heure affichée, on remarque que nous sommes en horaire d'été avec deux heures de décalage (CEST) (première ligne) (CEST, +0200) (4ème ligne) par rapport à l'heure de référence (UTC) (seconde ligne).


Si ce n'est pas le cas, il faut adapter ce fuseau horaire.

On peut lister les différentes zones de temps disponibles et leurs noms avec la commande suivante:

timedatectl list-timezones | grep "Europe/Brussels"

qui donne après filtrage:


Europe/Brussels

Il puise cette liste en consultant l'arborescence des fichiers présents sous le répertoire "/usr/share/zoneinfo".


On adapte ce fuseau horaire avec la commande:

timedatectl set-timezone Europe/Brussels

Cette opération met à jour le lien symbolique entre le fichier "/etc/localtime" et le fichier de référence de notre fuseau horaire.

On peut le vérifier par le moyen suivant:

ls -al /etc/localtime

qui donne:


lrwxrwxrwx. 1 root root 37  5 aoû  2020 /etc/localtime -> ../usr/share/zoneinfo/Europe/Brussels

Au lieu d'utiliser la commande "timedatectl", on peut adapter directement ce lien symbolique.


Synchronisation

La 5ème ligne:


System clock synchronized: yes

nous renseigne que le service Chrony permet la synchronisation des horloges. Si ce n'est pas le cas, il faut vérifier le bon fonctionnement de ce service.


NTP

A la 6ème ligne, on constate que le service Chrony est utilisé.

Si ce n'est pas le cas ("NTP service: inactive"), on exécute la commande suivante:

timedatectl set-ntp on


RTC

La dernière ligne:


RTC in local TZ: no

nous informe que nous nous référons à l'heure universelle et non matérielle. Si on se réfère à l'heure matérielle, cette situation n'est pas pleinement supportée.

Dans le cas contraire ("yes"), il faut utiliser la commande suivant pour la désactiver:

timedatectl set-local-rtc 0

A la suite de ce changement, il est conseillé d'effectuer une resynchronisation:

timedatectl --adjust-system-clock

Cette opération modifie la troisième ligne du fichier "/etc/adjtime" dont voici le contenu:


0.0 0 0.0
0
UTC




retour au menu de Linux