Comment configurer la synchronisation de l’heure sur Ubuntu 16.04

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 16.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 16.04 avec un utilisateur non root compatible avec sudo, comme décrit dans https://www.digitalocean.com/community/tutorials/initial-server-setup-with-ubuntu- 16-04 [ce tutoriel sur l’installation du serveur Ubuntu 16.04].

Navigation dans les commandes de base

La commande la plus élémentaire pour connaître l’heure sur votre serveur est + date +. Tout utilisateur peut taper cette commande pour imprimer la date et l’heure:

date
OutputWed Apr 26 17:44:38  2017

Le plus souvent, votre serveur utilisera par défaut le fuseau horaire UTC, comme indiqué dans la sortie ci-dessus. Le temps universel coordonné (UTC) correspond à l’heure à une longitude nulle. 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 commande + timedatectl 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 sur + SPACE pour aller en bas de la page, et sur` + b + pour aller en haut de la page. Une fois que vous avez trouvé le bon fuseau horaire, notez-le, puis tapez `+ q + pour quitter la liste.

Définissez maintenant le fuseau horaire avec + timedatectl set-timezone +, en veillant à remplacer la partie en surbrillance ci-dessous par le fuseau horaire indiqué dans la liste. Vous devez utiliser + sudo + avec + timedatectl + pour effectuer ce changement:

sudo timedatectl set-timezone

Vous pouvez vérifier vos modifications en exécutant à nouveau + date +:

date
OutputWed Apr 26 13:55:45  2017

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 synchronisation de l’heure sur le réseau était en grande partie gérée par le démon _Network Time Protocol ou ntpd. Ce serveur 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 le statut de timesyncd en exécutant + timedatectl + sans arguments. Vous n’avez pas besoin d’utiliser + sudo + dans ce cas:

timedatectl
OutputLocal time: Wed 2017-04-26 17:20:07 UTC
 Universal time: Wed 2017-04-26 17:20:07 UTC
       RTC time: Wed 2017-04-26 17:20:07
      Time zone: Etc/UTC (UTC, +0000)


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. + Heure du réseau sur: oui + signifie que timesyncd est activé et + NTP synchronisé: oui + indique que l’heure a été synchronisée avec succès.

Si timesyncd n’est pas activé, activez-le avec timedatectl:

sudo timedatectl set-ntp on

Exécutez à nouveau + timedatectl + pour confirmer l’état de l’heure du réseau. Cela peut prendre une minute pour que la synchronisation se produise, mais les deux + Heure du réseau sur: + et + NTP synchronisé: + devraient alors se lire + oui +.

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

Recherchez + heure réseau sur: no + dans la sortie. Cela signifie que + timesyncd + a été arrêté. Nous pouvons maintenant installer le paquet + ntp avec` + apt-get`:

sudo apt-get 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:

sudo ntpq -p
Outputremote           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
-makaki.miuku.ne 210.23.25.77     2 u   45   64    3  248.007   -0.489   1.137
-69.10.161.7     144.111.222.81   3 u   43   64    3   90.551    4.316   0.550
+static-ip-85-25 130.149.17.21    2 u   42   64    3   80.044   -2.829   0.900
+zepto.mcl.gg    192.53.103.108   2 u   40   64    3   83.331   -0.385   0.391

+ ntpq + est un outil de requête pour ntpd. L’indicateur + -p + demande des informations sur les serveurs NTP (ou p eers) 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 ceux décrits précédemment, vous pouvez vous reporter à de la documentation officielle du NTP, et prendre également jetez un coup d’œil à the NTP Pool Project, un groupe mondial de volontaires fournissant une grande partie de l’infrastructure NTP dans le monde.