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.
Dans Debian 9, la synchronisation temporelle est intégrée et activée par défaut à l’aide du serveur de temps ntpd standard, fourni par le paquetage + ntp +
. Dans cet article, nous allons examiner quelques commandes de base liées au temps, vérifier que ntpd est actif et connecté à des homologues, et apprendre à activer le service de temps réseau alternatif systemd-timesyncd.
Conditions préalables
Avant de commencer ce didacticiel, vous aurez besoin d’un serveur Debian 9 avec un utilisateur non-root, compatible Sudo, comme décrit dans https://www.digitalocean.com/community/tutorials/initial-server-setup-with-debian-. 9 [ce tutoriel sur l’installation d’un serveur Debian 9].
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
OutputTue Sep 4 17:51:49 2018
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 de zéro degré. 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
OutputTue Sep 4 13:52:57 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.
Vérification de l’état de ntpd
Par défaut, Debian 9 exécute le serveur ntpd standard pour garder votre système synchronisé avec un pool de serveurs de temps externes. Nous pouvons vérifier qu’il fonctionne avec la commande + systemctl +
:
sudo systemctl status ntp
Output● ntp.service - LSB: Start NTP daemon
Loaded: loaded (/etc/init.d/ntp; generated; vendor preset: enabled)
Active: since Tue 2018-09-04 15:07:03 EDT; 30min ago
Docs: man:systemd-sysv-generator(8)
Process: 876 ExecStart=/etc/init.d/ntp start (code=exited, status=0/SUCCESS)
Tasks: 2 (limit: 4915)
CGroup: /system.slice/ntp.service
└─904 /usr/sbin/ntpd -p /var/run/ntpd.pid -g -u 105:109
. . .
Le statut + actif (en cours) +
indique que ntpd a démarré correctement. Pour obtenir plus d’informations sur le statut de ntpd, nous pouvons utiliser la commande + ntpq +
:
ntpq -p
Output remote refid st t when poll reach delay offset jitter
==============================================================================
0.debian.pool.n .POOL. 16 p - 64 0 0.000 0.000 0.000
1.debian.pool.n .POOL. 16 p - 64 0 0.000 0.000 0.000
2.debian.pool.n .POOL. 16 p - 64 0 0.000 0.000 0.000
3.debian.pool.n .POOL. 16 p - 64 0 0.000 0.000 0.000
-eterna.binary.n 204.9.54.119 2 u 240 256 377 35.392 0.142 0.211
-static-96-244-9 192.168.10.254 2 u 60 256 377 10.242 1.297 2.412
+minime.fdf.net 83.157.230.212 3 u 99 256 377 24.042 0.128 0.250
*t1.time.bf1.yah 98.139.133.62 2 u 31 256 377 11.112 0.621 0.186
+x.ns.gin.ntt.ne 249.224.99.213 2 u 108 256 377 1.290 -0.073 0.132
-ord1.m-d.net 142.66.101.13 2 u 473 512 377 19.930 -1.764 0.293
+ ntpq +
est un outil de requête pour ntpd. L’indicateur + -p +
demande des informations sur les serveurs NTP (ou p eers) auxquels ntpd est connecté. Votre sortie sera légèrement différente, mais devrait lister les serveurs de pool Debian par défaut et quelques autres. N’oubliez pas que ntpd peut prendre quelques minutes pour établir des connexions.
Passage à systemd-timesyncd
Il est possible d’utiliser le composant * timesyncd * intégré de systemd pour remplacer ntpd. timesyncd est une alternative plus légère à ntpd qui est plus intégrée à systemd. Notez toutefois qu’il ne prend pas en charge l’exécution en tant que serveur de temps et que les techniques utilisées pour maintenir l’heure du système synchronisée sont légèrement moins sophistiquées. Si vous utilisez des systèmes distribués en temps réel complexes, vous voudrez peut-être rester avec ntpd.
Pour utiliser timesyncd, nous devons d’abord désinstaller ntpd:
sudo apt purge ntp
Ensuite, démarrez le service timesyncd:
sudo systemctl start systemd-timesyncd
Enfin, vérifiez le statut du service pour vous assurer qu’il fonctionne:
sudo systemctl status systemd-timesyncd
Output● systemd-timesyncd.service - Network Time Synchronization
Loaded: loaded (/lib/systemd/system/systemd-timesyncd.service; enabled; vendor preset: enabled)
Drop-In: /lib/systemd/system/systemd-timesyncd.service.d
└─disable-with-time-daemon.conf
Active: since Tue 2018-09-04 16:14:23 EDT; 1s ago
Docs: man:systemd-timesyncd.service(8)
Main PID: 3399 (systemd-timesyn)
Status: "Synchronized to time server 198.60.22.240:123 (0.debian.pool.ntp.org)."
Tasks: 2 (limit: 4915)
CGroup: /system.slice/systemd-timesyncd.service
└─3399 /lib/systemd/systemd-timesyncd
Nous pouvons utiliser + timedatectl +
pour afficher la compréhension actuelle de l’heure par systemd:
timedatectl
Output Local time: Tue 2018-09-04 16:15:34 EDT
Universal time: Tue 2018-09-04 20:15:34 UTC
RTC time: Tue 2018-09-04 20:15:33
Time zone: America/New_York (EDT, -0400)
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.
Conclusion
Dans cet article, nous avons montré comment afficher l’heure système, modifier les fuseaux horaires, utiliser ntpd et passer au service timesyncd de systemd. Si vous avez des besoins de chronométrage plus complexes que ceux décrits précédemment, vous pouvez vous reporter à la de la documentation officielle de la NTP, ainsi que 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.