LINUX:Date et heure
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.
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 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 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 des 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:
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.
Réglage
C'est bien de récupérer l'heure mais il faut que le paramétrage du système soit adéquat.
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 suivant entre le fichier "/etc/localtime" et le fichier de référence de notre fuseau horaire.
ls -al /etc/localtime
lrwxrwxrwx. 1 root root 37 5 aoû 2020 localtime -> ../usr/share/zoneinfo/Europe/Brussels