web-dev-qa-db-fra.com

Forcer systemd timesyncd à synchroniser l'heure avec le serveur NTP immédiatement

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?

  • Combien de temps faut-il pour que timesyncd se synchronise avec le NTP? À quels intervalles fait-il cela, où puis-je les vérifier et les modifier?
  • En cas d'urgence: puis-je uniquement régler l'heure manuellement ou forcer la synchronisation immédiate de timesyncd avec le serveur NTP?
16
manifestor

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.

9
John Mahowald

Sans installer d'autres packages ... Désactivez NTP, définissez manuellement l'heure pour qu'elle soit suffisamment proche , turn = NTP retour sur:

Définir NTP Service inactif

$ timedatectl set-ntp false

Réglez l'heure manuellement

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"

Définir NTP service actif

$ Sudo timedatectl set-ntp true

Attendre

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".

Dépannage

$ 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.

10
John Mee