Outils pour utilisateurs

Outils du site


sysadmin:linux:systemd:synchronisation-du-temps

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
sysadmin:linux:systemd:synchronisation-du-temps [2020/05/27 15:14] – créée yoannsysadmin:linux:systemd:synchronisation-du-temps [2022/05/24 16:44] (Version actuelle) – Complétions et corrections yoann
Ligne 1: Ligne 1:
-{{tag>sysadmin linux systemd sntp ntp}}+{{tag>sysadmin linux systemd sntp ntp timezone tz}}
  
 ====== Systemd: Synchronisation du temps ====== ====== Systemd: Synchronisation du temps ======
  
-systemd intègre un service de synchronisation du temps local via un client sntp (unité timesyncd)+systemd intègre un service de synchronisation du temps local via un client sntp (unité timesyncd). Le client possède peu d'options de paramétrages, il est simple à mettre en œuvre. Il fonctionnera très bien sur un hôte relié en permanence au réseau (comme un serveur ou une station de travail régulièrement connecté). Cependant sur des hôtes connectés occasionnellement, d'autres programmes comme **chrony** pourraient être mieux adaptés. 
  
 Pour afficher l'état: Pour afficher l'état:
Ligne 10: Ligne 11:
 </code> </code>
  
-===== Définir le serveur de référence =====+===== Configuration =====
  
-Pour configurer le serveur ou du pool de référence, odifier le fichier de configuration **/etc/systemd/timesyncd.conf**. Dans la section [TIME] définir la variable NTP avec l'IP ou l'URL du serveur:+Pour configurer le serveur ou du pool de référence, modifier le fichier de configuration **/etc/systemd/timesyncd.conf**. Dans la section [TIME] définir la variable NTP avec l'IP ou l'URL du serveur:
  
 <file> <file>
Ligne 19: Ligne 20:
 </file> </file>
  
-Une fois l' unité activée, le temps local va se synchroniser graduellement avec le serveur de référence. Si toutefois la dérive est importante il faudra:+Redémarrer le service pour prendre en compte les modifications: 
 +<code bash> 
 +systemctl restart systemd-timesyncd.service  
 +</code> 
 + 
 +Une fois l' unité activée, le temps local va se synchroniser graduellement avec le serveur de référence. Si toutefois la dérive est trop importante il faudra:
  
   * Arrêter le service   * Arrêter le service
Ligne 36: Ligne 42:
 Définir le temps local manuellement: Définir le temps local manuellement:
 <code bash> <code bash>
-timedatectl set-time ""+timedatectl set-time "2020-05-27 18:13:00"
 </code> </code>
  
Ligne 44: Ligne 50:
 </code> </code>
  
-Vérifier l''état de la synchronisation via journalctl et timedatectl+Vérifier l'état de la synchronisation via journalctl et timedatectl
  
 <code bash> <code bash>
 journalctl -u systemd-timesyncd.service journalctl -u systemd-timesyncd.service
 +</code>
 +
 +Des  détails concernant la synchronisation via NTP peuvent être affichés via l'option **show-timesync**
 +<code bash>
 +timedatectl show-timesync
 +</code>
 +
 +
 +Afficher le status global en invoquant la commande **timedatectl** sans arguments (équivalent de **''timedatectl status''**):
 +<code bash>
 +timedatectl 
 +                      Local time: mer. 2020-05-27 18:14:04 CEST
 +                  Universal time: mer. 2020-05-27 16:14:04 UTC
 +                        RTC time: mer. 2020-05-27 16:14:04
 +                       Time zone: Europe/Paris (CEST, +0200)
 +       System clock synchronized: yes
 +systemd-timesyncd.service active: yes
 +                 RTC in local TZ: no
 +</code>
 +
 +Sur le résultat on peut lire que la "Time Zone" est bien configurée, le temps local est correct, l'horloge temps réel (RTC) utilise le temps UTC, le système est synchrone avec le serveur de temps et le service (systemd-timesyncd) est bien actif.
 +
 +===== Modifier le temps local (time zone) =====
 +
 +Lister les time zones disponibles:
 +<code bash>
 +timedatectl list-timezones
 +</code>
 +
 +A partir de la liste, définir une time zone pour la machine:
 +<code bash>
 +timedatectl set-timezone Europe/Paris
 +</code>
 +
 +===== A propos de la RTC =====
 +
 +La RTC pour **R**eal **T**ime **C**lock est l'horloge matérielle, le composant spécialisé qui fournit le temps au système local. Les différents systèmes d'exploitation ne la configurent pas de la même manière:
 +  * *nix définissent la RTC au temps Zulu
 +  * Windows définissent la RTC au temps local
 +
 +La commande **timedatectl status** produit deux lignes indiquant comment est configurée la RTC:
 +
 +<file>
 +               Local time: lun. 2021-06-28 11:15:09 CEST
 +           Universal time: lun. 2021-06-28 09:15:09 UTC 
 +                 RTC time: lun. 2021-06-28 09:15:09     
 +                Time zone: Europe/Paris (CEST, +0200)   
 +System clock synchronized: yes                          
 +              NTP service: active                       
 +          RTC in local TZ: no
 +</file>
 +
 +La dernière ligne ''RTC in local TZ: no'' est la valeur **normale par défaut**, elle indique bien que la RTC n'est pas configurée sur le temps local (fuseau Europe/Paris). Dans cet exemple la RTC vaut ''09:15:09'' (3ième ligne) ce qui correspond bien au temps UTC ou temps Zulu.
 +
 +L'horloge temps réel peut être configurée pour utiliser le temps local:
 +<code bash>
 +timedatectl set-local-rtc 1
 +</code>
 +
 +Autrement, la commande suivante permet de définir le temps UTC comme référence pour l'horloge temps réel:
 +
 +<code bash>
 +timedatectl set-local-rtc 0
 +</code>
 +
 +===== Dépannage/troubleshooting =====
 +
 +==== Consulter les journaux ====
 +
 +Pour consulter les traces du service en temps réel: 
 +<code bash>
 +journalctl --unit systemd-timesyncd.service --follow
 +</code>
 +
 +==== Activer le mode debug ====
 +
 +Il est possible d’arrêter le service et de le relancer en mode debug dans la console:
 +<code bash>
 +# Arrêt du service
 +systemctl stop systemd-timesyncd.service
 +
 +# Exécution en mode debug dans le terminal
 +SYSTEMD_LOG_LEVEL=debug /usr/lib/systemd/systemd-timesyncd
 </code> </code>
  
Ligne 53: Ligne 142:
  
   * https://serverfault.com/questions/948974/force-systemd-timesyncd-to-sync-time-with-ntp-server-immediately   * https://serverfault.com/questions/948974/force-systemd-timesyncd-to-sync-time-with-ntp-server-immediately
 +  * https://linuxize.com/post/how-to-set-or-change-timezone-on-debian-9/
 +  * https://forums.linuxmint.com/viewtopic.php?t=265008
 +  * https://wiki.archlinux.org/title/Systemd-timesyncd
  
sysadmin/linux/systemd/synchronisation-du-temps.1590592479.txt.gz · Dernière modification : 2021/02/01 21:51 (modification externe)