Comment faire pour déterminer le NTP état de la communication

Je suis en train de travailler sur un intégré à OpenSUSE 12.3 système qui permet à l'utilisateur de configurer le (seul) adresse du serveur NTP. J'ai besoin d'être en mesure de donner à l'utilisateur des commentaires sur la façon dont vont les choses en termes de communication avec le serveur spécifié. L'adresse du serveur est-elle valide? Le NTP été impossible de contacter le serveur? Est-il en interrogeant le serveur? Ou, sommes-nous entièrement synchronisé? (Remarque: une fois NTP pense qu'il est synchronisé puis je n'ai pas de soins, tout mode de synchronisation c'est).

Droit maintenant, j'ai écrit un script bash pour analyser la sortie de ntpq -np:

  • Si la sortie contient "ntpq: read: Connection refused" puis ntpd n'est pas en cours d'exécution
  • Si la sortie contient "No association ID's returned" ensuite l'adresse du serveur n'est pas valide
  • Si la sortie contient ".INIT." puis ntpd n'a pas encore connecté au serveur
  • Si la sortie ne contient PAS une ligne de départ avec "*" alors que nous sommes en interrogeant le serveur
  • Sinon, nous sommes synchronisés.

Clairement, c'est une douleur à l'arrière et très dépendantes des plate-formes, et j'aimerais avoir une meilleure solution.

Je comprends qu'il y a un libntpq.a l'intérieur d'un bâti source ntp arbre qui peut être utilisé par des applications externes, mais jusqu'à il y a une version officielle, alors que c'est juste le passage à une nouvelle saveur de la plate-forme de dépendance.

Est-il un moyen officiel pour déterminer le courant de l'état de la communication d'un client NTP? A noter encore qu'un seul serveur sera configuré.

OriginalL'auteur Daniel Griscom | 2014-04-22