J'ai configuré systemd timesyncd pour qu'il soit temps d'un serveur NTP:
/etc/systemd/timesyncd.conf > NTP=ca.pool.ntp.org
systemctl restart systemd-timesyncd.service
timedatectl set-ntp true
Le statut est le suivant:
$ timedatectl status
...
Network time on: yes
NTP synchronized: no
Comme l'indique la sortie, l'heure n'est pas encore synchronisée. Quelqu'un peut-il m'aider avec les questions suivantes?
Pour utiliser une implémentation réelle NTP, vous devez en installer et en configurer une, chrony
ou peut-être ntpd
. Faites-le si vous avez besoin de surveiller les performances horaires. Je vais assumer chrony.
Ajoutez iburst
à vos lignes pool
ou server
dans votre configuration pour accélérer les premiers paquets. La stabilisation peut encore prendre quelques minutes, soyez patient.
chronyc tracking
affichera le décalage actuel. Ayez une idée de vos besoins, une seconde de précision peut facilement tolérer des dizaines de millisecondes de décalage.
chronyc makestep
effectuera immédiatement le réglage actuel. Pas nécessaire en général.
timesyncd
est un client SNTP qui peut régler l'heure, mais pas la discipliner progressivement et en continu, ni filtrer le serveur distant NTP serveur basé sur la qualité . ( Il ne peut pas non plus parler à l'heure du matériel ou du PTP, seulement NTP protocole.) Un peu mieux que répété ntpdate
, par lequel je veux dire pas une très bonne horloge. Personnellement, je le remplace sur la plupart des serveurs.
La seule façon de régler l'heure avec timesyncd est manuellement: timedatectl set-time "2019-01-15 00:40:16"
. Il ne dispose pas de moyens solides pour discipliner et surveiller l'horloge. Base NTP stats via timedatectl timesync-status
est une chose relativement nouvelle, je ne pense pas que cette option soit disponible dans Red Hat 7 ou Ubuntu 18.04.
systemd définit "syncronized" comme si NTP a déjà été utilisé pour dire à Linux d'ajuster l'horloge. Plus précisément, si la discipline du noyau appelle adjtimex () retournée sans erreur, et non l'état initial. Voir le code source, systemd/src/basic/time-util.c.
Sans installer d'autres packages ... Désactivez NTP, définissez manuellement l'heure pour qu'elle soit suffisamment proche , turn = NTP retour sur:
$ timedatectl set-ntp false
Oui, c'est triste, mais cela fonctionne et vous n'avez pas besoin de fouiller pour installer quoi que ce soit et le faire fonctionner. Obtenez l'heure LOCALE approximative de l'horloge murale, de votre téléphone, d'Internet. Il n'a pas besoin d'être parfait car nous réactiverons ntp dans un instant ...
$ Sudo timedatectl set-time "2019-06-22 13:41:00"
$ Sudo timedatectl set-ntp true
john@mybox:~$ timedatectl
Local time: Sat 2019-06-22 13:49:53 AEST
Universal time: Sat 2019-06-22 03:49:53 UTC
RTC time: Sat 2019-06-22 03:49:54
Time zone: Australia/Sydney (AEST, +1000)
System clock synchronized: no
NTP service: active
RTC in local TZ: no
"L'horloge système synchronisée: non" se transforme en "oui" lorsqu'elle s'est suffisamment ajustée pour être considérée comme "synchronisée".
$ cat /etc/systemd/timesyncd.conf
[Time]
NTP=pool.ntp.org
$ timedatectl timesync-status
Server: 13.210.208.89 (au.pool.ntp.org)
Poll interval: 8min 32s (min: 32s; max 34min 8s)
Packet count: 0
$ grep systemd-timesyncd /var/log/syslog | tail
Jun 22 14:13:09 meebox systemd-timesyncd[8333]: Timed out waiting for reply from 103.214.220.220:123 (au.pool.ntp.org).
Mes paquets ntp étaient bloqués par le pare-feu de l'entreprise.