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.
Debian 10 intègre une synchronisation de l’heure et est activée par défaut à l’aide du serveur de temps ntpd standard, fourni par le paquet + 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 tutoriel, vous aurez besoin d’un serveur Debian 10 avec un utilisateur non root, + sudo +
-, comme décrit dans https://www.digitalocean.com/community/tutorials/initial-server-setup-with. -debian-10 [ce tutoriel sur l’installation d’un serveur Debian 10].
Étape 1 - 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 31 Jul 2019 06:03:19 PM
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 31 Jul 2019 02:08:43 PM
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.
Étape 2 - Vérification de l’état de ntpd
Par défaut, Debian 10 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 - Network Time Service
Loaded: loaded (/lib/systemd/system/ntp.service; enabled; vendor preset: enabled)
Active: since Wed 2019-07-31 13:57:08 EDT; 17min ago
Docs: man:ntpd(8)
Main PID: 429 (ntpd)
Tasks: 2 (limit: 1168)
Memory: 2.1M
CGroup: /system.slice/ntp.service
└─429 /usr/sbin/ntpd -p /var/run/ntpd.pid -g -u 106:112
. . .
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
+208.67.72.50 152.2.133.55 2 u 12 64 377 39.381 1.696 0.674
+198.46.223.227 204.9.54.119 2 u 6 64 377 22.671 3.536 1.818
-zinc.frizzen.ne 108.61.56.35 3 u 43 64 377 12.012 1.268 2.553
-pyramid.latt.ne 204.123.2.72 2 u 11 64 377 69.922 2.858 0.604
+nu.binary.net 128.252.19.1 2 u 10 64 377 35.362 3.148 0.587
#107.155.79.108 129.7.1.66 2 u 65 64 377 42.380 1.638 1.014
+t1.time.bf1.yah 98.139.133.62 2 u 6 64 377 11.233 3.305 1.118
*sombrero.spider 129.6.15.30 2 u 47 64 377 1.304 2.941 0.889
+hydrogen.consta 209.51.161.238 2 u 45 64 377 1.830 2.280 1.026
-4.53.160.75 142.66.101.13 2 u 42 64 377 29.077 2.997 0.789
#horp-bsd01.horp 146.186.222.14 2 u 39 64 377 16.165 4.189 0.717
-ntpool1.603.new 204.9.54.119 2 u 46 64 377 27.914 3.717 0.939
+ 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.
Étape 3 - 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 cependant qu’il ne prend pas en charge l’exécution en tant que serveur de temps et que les techniques qu’il utilise pour garder votre système synchronisé sont un peu moins sophistiqués. 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: /usr/lib/systemd/system/systemd-timesyncd.service.d
└─disable-with-time-daemon.conf
Active: since Wed 2019-07-31 14:21:37 EDT; 6s ago
Docs: man:systemd-timesyncd.service(8)
Main PID: 1681 (systemd-timesyn)
Status: "Synchronized to time server for the first time 96.245.170.99:123 (0.debian.pool.ntp.org)."
Tasks: 2 (limit: 1168)
Memory: 1.3M
CGroup: /system.slice/systemd-timesyncd.service
└─1681 /lib/systemd/systemd-timesyncd
Nous pouvons utiliser + timedatectl +
pour afficher la compréhension actuelle de l’heure par systemd:
timedatectl
Output Local time: Wed 2019-07-31 14:22:15 EDT
Universal time: Wed 2019-07-31 18:22:15 UTC
RTC time: n/a
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. + Horloge système synchronisée: oui +
signifie que l’heure a été synchronisée avec succès, et + service NTP: active +
signifie que timesyncd est activé et en cours d’exécution.
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.