Guide des développeurs pour les services de données Sun Cluster pour SE Solaris

Contrôle de la fiabilité du service

La sonde elle-même est une boucle while infinie de commandes nslookup. Avant cette boucle, un fichier temporaire est créé. Son but consiste à collecter les réponses à nslookup. Les variables probefail et retries sont remises à 0.


# Configurer un fichier temporaire pour les réponses de nslookup.
DNSPROBEFILE=/tmp/.$RESOURCE_NAME.probe
probefail=0
retries=0

La boucle while elle-même :

Voici le code de la boucle while.


while :
do
   # L'intervalle auquel la sonde doit s'exécuter est spécifié dans la
   # propriété INTERVALLE_SONDE_COMPLET. Par conséquent, définir le sommeil de la sonde
   # à une durée de INTERVALLE_SONDE_COMPLET.
   sleep $PROBE_INTERVAL

   # Exécuter une commande nslookup de l'adresse IP sur laquelle le DNS fonctionne.
   hatimerun -t $PROBE_TIMEOUT /usr/sbin/nslookup $DNS_HOST $DNS_HOST \
          > $DNSPROBEFILE 2>&1

      retcode=$?
      if [ $retcode -ne 0 ]; then
            probefail=1
      fi

   # Vérifier que la réponse à nslookup provient du serveur HA-DNS
   # et pas d'un autre nom de serveur mentionné dans le fichier
   # /etc/resolv.conf.
   if [ $probefail -eq 0 ]; then
   # Obtenir le nom du serveur ayant répondu à la requête de nslookup.
   SERVER=` awk ' $1=="Server:" { print $2 }' \
   $DNSPROBEFILE | awk -F. ' { print $1 } ' `
   if [ -z "$SERVER" ]; then
      probefail=1
      else
         if [ $SERVER != $DNS_HOST ]; then
            probefail=1
         fi
   fi
fi