0
votes

Comment vérifier que ntpd est toujours en cours d'exécution et synchronisé

J'appelle ntp_gettime () et il fonctionne comme prévu, mais si je tue ntpd, j'obtiens toujours le bon comportement avec ma valeur de retour ne montrant aucun problème. Cela suggère que ntp_gettime () ne fait pas appel à ntpd, ce qui, je crois, était en train de se produire.

J'essaie de vérifier que ntpd fonctionne toujours correctement et qu'il a toujours une connexion valide. Je suppose maintenant que ntpd met à jour le système en fonction de l'intervalle défini et que l'appel ntp_gettime () n'appelle que le système.

Ma question est la suivante: est-ce que ntp_gettime () peut être utilisé pour déterminer si ntpd fonctionne et que la connexion au serveur est toujours valide et est-ce que je viens de faire une erreur quelque part? Sinon, y a-t-il un moyen de le faire?


1 commentaires

Essayez nttpq -pcrv qui interroge l'état du serveur et renvoie de nombreuses choses différentes que vous pourriez vérifier. Si vous avez besoin de plus de détails, veuillez me le faire savoir


3 Réponses :


0
votes

La réponse à votre question est "non". Ce n'est pas l'interface avec le serveur NTP et ne peut pas être utilisé pour déterminer l'état du serveur NTP. C'est quelque chose de complètement différent. D'après la documentation de la glibc :

Les fonctions ntp_gettime et ntp_adjtime fournissent une interface pour surveiller et manipuler l'horloge du système pour maintenir une haute précision temps. Par exemple, vous pouvez affiner la vitesse de l'horloge ou synchronisez-le avec une autre source de temps.

Une utilisation typique de ces fonctions est par un serveur implémentant le Network Time Protocol pour synchroniser les horloges de plusieurs systèmes et horloges de haute précision.

En d'autres termes, c'est ce que le serveur NTP lui-même utilise pour parler au noyau, pour s'occuper des affaires.


3 commentaires

Grand merci. Ma question ne porte pas spécifiquement sur le serveur, mais sur le client ntp. Si ntp_gettime ne peut pas me faire savoir si ntpd est en cours d’exécution et synchronisé, existe-t-il un autre moyen de le faire?


Vous pouvez dire si le ntp fonctionne en vérifiant si quelque chose est lié à son port, via / proc / net / udp . En ce qui concerne le statut, vous devrez creuser dans l'outil de ligne de commande ntpdc ou ntpclient qui fait cela, et voir comment il obtient ces informations. La source est disponible gratuitement, après tout ...


Merci d'avoir essayé Sam, appréciez l'effort. Jettera un œil à votre suggestion.



0
votes

Vérification du fonctionnement du démon

ntpctl est un programme pour afficher des informations sur le démon ntpd en cours d'exécution, la commande ci-dessous vous donnera des informations sur le nombre de serveurs avec lesquels le démon se synchronise, l'état de l'horloge système si elle est synchronisée / non synchronisé et le décalage d'horloge. Pour plus d'informations, consultez la page de manuel de ntpctl https://man.openbsd.org/ntpctl . Le package Openntpd vous apporte le programme ntpctl.

ntpctl -s all


0 commentaires

0
votes

La façon dont j'ai fini par le faire est d'utiliser un tube pour faire un appel ntpstat et de traiter la sortie. C'est-à-dire que je vérifie la non-synchronisation, la synchronisation et l'absence de synchronisation (après avoir vérifié la non-synchronisation) et j'agis en conséquence en fonction des résultats ci-dessus.

S'il y a une meilleure façon d'obtenir le même résultat, parce que je pense que c'est compliqué, merci de me le faire savoir.


0 commentaires