Quelle est la méthode recommandée pour synchroniser l'heure à l'aide de NTP?


18

Cette question a été posée plusieurs fois de manière localisée, cette question est destinée à fournir la méthode préférée / meilleure pour synchroniser l'horloge d'un système à l'aide de NTP.

La solution doit gérer correctement plusieurs problèmes, tels que:

  1. Corrigez le temps au démarrage rapidement lorsque l'horloge a une grande asymétrie.

  2. Fournissez une configuration qui protège et / ou corrige les situations où l'horloge peut parfois développer un grand décalage dans le temps.

  3. Une solution robuste qui peut gérer et synchroniser l'heure rapidement lorsque certains problèmes surviennent tels que: "le serveur de temps n'était pas accessible au démarrage" ou "Internet est inaccessible au démarrage".

La solution idéale serait un seul fichier de configuration NTP capable de gérer tout cela.

Les références

Bon nombre des éléments qui fourniront la solution «ultime» sont répartis sur le site U&L dans des questions telles que celles-ci:

Il y en a forcément d'autres mais ce sont ceux que j'ai vus qui me viennent à l'esprit comme étant pertinents.



1
FYI: Prévoir de travailler sur une réponse globale à cette question. Voir le journal de discussion à partir de chat.stackexchange.com/transcript/message/11350138#11350138
derobert

# 2 ne devrait pas se produire si ntpd est en cours d'exécution
dfc

@dfc - cela peut se produire lorsqu'une machine virtuelle est suspendue puis reprise plus tard, il existe d'autres situations où cela peut également se produire.
slm

@slm "se développe" signifie un saut dans le temps après le redémarrage de la VM? Il semble que dans quelques heures après le redémarrage, ntpd devrait maîtriser l'inclinaison. Certainement pas empirer les choses. Quelles sont les autres situations?
dfc

Réponses:


6

Étant donné que vous ne pouvez pas corriger les écarts importants dans le temps en utilisant ntp (sauf si vous avez quelques heures pour que l'horloge rattrape ou ralentisse), je fais ceci:

service ntpd stop
ntpdate us.pool.ntp.org
service ntpd start

Je le cron une fois par jour, tous les jours. J'ai également mis ntpdate dans un script init à exécuter avant le démarrage de ntp après le démarrage, car les redémarrages et les cycles d'alimentation sont les événements les plus probables / fréquents qui perturbent l'heure du système.


Si ntpd fonctionne correctement, pourquoi devez-vous l'arrêter et le démarrer? Cela semble être une idée terrible.
dfc

3
ntpdate ne fonctionnera pas si ntpd est en cours d'exécution.
Grizly

4

Ce que vous recherchez est ntpdavec l' --panicgateoption.

L'option panicgate permet au premier réglage après le ntpddémarrage d'être de n'importe quelle taille. C'est exactement pour le cas d'utilisation que vous avez décrit où une machine arrive et son horloge est extrêmement imprécise. Lorsque ntpd démarre avec cette option activée, cela peut prendre un moment pour qu'il trouve un serveur et établisse une synchronisation avec lui.

Cette option résout en soi votre élément n ° 1.

# 2 est la vanille ntpd. Ntpd conserve un fichier de dérive qui est le taux de décalage d'horloge de votre système.

# 3 est également identique à # 1. L' --panicgateoption n'est pas limitée immédiatement au démarrage de ntpd, elle est limitée au "premier ajustement", chaque fois que cet ajustement est effectué.


taper ntpd --panicgate puis date ne fait absolument rien
AlxVallejo

Modifiez-vous les fichiers init pour passer -gou existe-t-il une option équivalente à configurer ntp.conf?
Jérôme

Je viens de réaliser qu'il -gest déjà utilisé par défaut dans mon installation Debian, mais je ne sais pas dans quel fichier init / config cela est fait.
Jérôme

2

Utilisez chronyd / chronyc au lieu de ntp / ntpdate. C'est déjà la méthode par défaut dans fedora et, je suppose, sera dans RHEL 7.0 dès qu'il sera prêt.

La documentation peut être trouvée à http://chrony.tuxfamily.org/

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.