introduction
La minuterie précise est devenue un élément essentiel des déploiements de logiciels modernes. Que ce soit pour vérifier que les journaux sont enregistrés dans le bon ordre ou que les mises à jour de la base de données sont appliquées correctement, le temps de synchronisation peut entraîner des erreurs, la corruption des données et d’autres problèmes difficiles à résoudre.
Ubuntu 18.04 a une synchronisation temporelle intégrée et activée par défaut à l’aide du service timesyncd de systemd. Dans cet article, nous allons examiner quelques commandes de base liées au temps, vérifier que timesyncd est actif et apprendre à installer un autre service de temps réseau.
Conditions préalables
Avant de commencer ce didacticiel, vous aurez besoin d'un serveur Ubuntu 18.04 avec un utilisateur non root et compatible sudo, comme décrit dansthis Ubuntu 18.04 server setup tutorial.
Navigation dans les commandes de base
La commande la plus basique pour connaître l'heure de votre serveur estdate
. Tout utilisateur peut taper cette commande pour imprimer la date et l'heure:
date
OutputTue Jul 10 14:48:52 UTC 2018
Le plus souvent, votre serveur utilisera par défaut le fuseau horaireUTC, comme indiqué dans la sortie ci-dessus. UTC estCoordinated Universal Time, l'heure à zéro degré de longitude. L'utilisation systématique du temps universel réduit le risque de confusion lorsque votre infrastructure s'étend sur plusieurs fuseaux horaires.
Si vous avez des exigences différentes et devez modifier le fuseau horaire, vous pouvez utiliser la commandetimedatectl
pour le faire.
Commencez par lister les fuseaux horaires disponibles:
timedatectl list-timezones
Une liste de fuseaux horaires s'imprimera sur votre écran. Vous pouvez appuyer surSPACE
pour la page suivante et surb
pour la page précédente. Une fois que vous avez trouvé le fuseau horaire correct, notez-le puis tapezq
pour quitter la liste.
Réglez maintenant le fuseau horaire avectimedatectl set-timezone
, en veillant à remplacer la partie en surbrillance ci-dessous par le fuseau horaire que vous avez trouvé dans la liste. Vous devrez utilisersudo
avectimedatectl
pour effectuer cette modification:
sudo timedatectl set-timezone America/New_York
Vous pouvez vérifier vos modifications en exécutant à nouveaudate
:
date
OutputTue Jul 10 10:50:53 EDT 2018
L'abréviation de fuseau horaire doit refléter la nouvelle valeur choisie.
Maintenant que nous savons comment vérifier l'horloge et régler les fuseaux horaires, assurons-nous que notre heure est correctement synchronisée.
Contrôle de timesyncd avec timedatectl
Jusqu'à récemment, la plupart de la synchronisation de l'heure du réseau était gérée parNetwork Time Protocol daemon ou ntpd. Ce service se connecte à un pool d'autres serveurs NTP qui lui fournit des mises à jour de l'heure constantes et précises.
L’installation par défaut d’Ubuntu utilise maintenant timesyncd au lieu de ntpd. timesyncd se connecte aux mêmes serveurs et fonctionne à peu près de la même façon, mais il est plus léger et plus intégré à systemd et aux fonctionnements de bas niveau d’Ubuntu.
Nous pouvons interroger l'état de timesyncd en exécutanttimedatectl
sans argument. Vous n’avez pas besoin d’utilisersudo
dans ce cas:
timedatectl
Output Local time: Tue 2018-07-10 10:54:12 EDT
Universal time: Tue 2018-07-10 14:54:12 UTC
RTC time: Tue 2018-07-10 14:54:12
Time zone: America/New_York (EDT, -0400)
System clock synchronized: yes
systemd-timesyncd.service active: yes
RTC in local TZ: no
Ceci affiche l’heure locale, l’heure universelle (qui peut être identique à l’heure locale, si vous n’avez pas quitté le fuseau horaire UTC), ainsi que des informations sur l’état de l’heure du réseau. System clock synchronized: yes
indique que l'heure a été synchronisée avec succès etsystemd-timesyncd.service active: yes
signifie que timesyncd est activé et en cours d'exécution.
Si timesyncd n’est pas actif, allumez-le avec timedatectl:
sudo timedatectl set-ntp on
Exécutez à nouveautimedatectl
pour confirmer l'état de l'heure du réseau. La synchronisation réelle peut prendre une minute, mais finalement,Network time on:
etNTP synchronized:
devraient lireyes
.
Passer à ntpd
Bien que timesyncd convienne dans la plupart des cas, ntpd peut mieux servir certaines applications très sensibles à la moindre perturbation dans le temps, car il utilise des techniques plus sophistiquées pour maintenir en permanence et progressivement le temps système.
Avant d'installer ntpd, nous devrions désactiver timesyncd:
sudo timedatectl set-ntp no
Vérifiez que timesyncd est désactivé:
timedatectl
Recherchezsystemd-timesyncd.service active: no
dans la sortie. Cela signifie quetimesyncd
a été arrêté. Nous pouvons maintenant installer le packagentp
avecapt
:
sudo apt update
sudo apt install ntp
ntpd sera lancé automatiquement après l’installation. Vous pouvez interroger ntpd pour obtenir des informations sur le statut afin de vérifier que tout fonctionne correctement:
ntpq -p
Output remote refid st t when poll reach delay offset jitter
==============================================================================
0.ubuntu.pool.n .POOL. 16 p - 64 0 0.000 0.000 0.000
1.ubuntu.pool.n .POOL. 16 p - 64 0 0.000 0.000 0.000
2.ubuntu.pool.n .POOL. 16 p - 64 0 0.000 0.000 0.000
3.ubuntu.pool.n .POOL. 16 p - 64 0 0.000 0.000 0.000
ntp.ubuntu.com .POOL. 16 p - 64 0 0.000 0.000 0.000
+ec2-52-0-56-137 216.239.35.0 2 u 16 64 1 7.872 -2.137 1.485
+66.220.10.2 129.6.15.30 2 u 12 64 1 65.204 3.740 2.686
+block.steinhoff 209.51.161.238 2 u 11 64 1 33.364 1.710 3.586
+eterna.binary.n 216.229.0.50 3 u 11 64 1 35.330 2.821 2.839
+2604:a880:800:1 209.51.161.238 2 u 14 64 1 0.394 0.386 2.462
+ec2-52-6-160-3. 130.207.244.240 2 u 11 64 1 8.150 2.050 3.053
+mx.danb.email 127.67.113.92 2 u 13 64 1 63.868 1.539 2.240
*hydrogen.consta 129.6.15.28 2 u 12 64 1 2.989 1.755 2.563
+ntp-3.jonlight. 127.67.113.92 2 u 10 64 1 64.561 2.122 3.593
+undef.us 45.33.84.208 3 u 12 64 1 33.508 1.631 3.647
+ntp-3.jonlight. 127.67.113.92 2 u 8 64 1 64.253 2.645 3.174
2001:67c:1560:8 145.238.203.14 2 u 22 64 1 71.155 -1.059 0.000
+test.diarizer.c 216.239.35.4 2 u 11 64 1 64.378 4.648 3.244
2001:67c:1560:8 145.238.203.14 2 u 18 64 1 70.744 -0.964 0.000
alphyn.canonica 132.246.11.231 2 u 17 64 1 7.973 -0.170 0.000
+vps5.ctyme.com 216.218.254.202 2 u 10 64 1 65.874 1.902 2.608
ntpq
est un outil de requête pour ntpd. L'indicateur-p
demande des informations sur les serveurs NTP (ou les voyantsp) auxquels ntpd s'est connecté. Votre sortie sera légèrement différente, mais devrait lister les serveurs de pool Ubuntu par défaut et quelques autres. N'oubliez pas que ntpd peut prendre quelques minutes pour établir des connexions.
Conclusion
Dans cet article, nous avons montré comment afficher l’heure du système, modifier les fuseaux horaires, utiliser l’heure par défaut d’Ubuntu et installer ntpd. Si vous avez des besoins de chronométrage plus sophistiqués que ce que nous avons abordé ici, vous pouvez faire référence àthe offical NTP documentation, et également jeter un œil àthe NTP Pool Project, un groupe mondial de volontaires fournissant une grande partie de l'infrastructure NTP mondiale.