Sun Cluster: Guía del desarrollador de los servicios de datos del sistema operativo Solaris

Comprobación de la fiabilidad del servicio

El análisis en sí es un bucle while infinito de órdenes nslookup. Antes del bucle while, se configura un archivo temporal para contener las respuestas de nslookup. Las variables probefail y retries se inicializan a 0.


# Configurar un archivo temporal para las respuestas de nslookup.
DNSPROBEFILE=/tmp/.$RESOURCE_NAME.probe
probefail=0
retries=0

El propio bucle while:

Éste es el código bucle while.


while :
do
   # El intervalo al que se debe ejecutar el análisis se especifica en la
   # propiedad THOROUGH_PROBE_INTERVAL. Por tanto, establecer el análisis en
   # reposo durante el tiempo que indica THOROUGH_PROBE_INTERVAL.
   sleep $PROBE_INTERVAL

   # Ejecutar una orden nslookup de la dirección IP en la que sirve DNS.
   hatimerun -t $PROBE_TIMEOUT /usr/sbin/nslookup $DNS_HOST $DNS_HOST \
          > $DNSPROBEFILE 2>&1

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

   # Asegurarse de que la respuesta a nslookup provenga del servidor
   # de HA-DNS y no de otro servidor de nombres mencionado en el
   # archivo /etc/resolv.conf.
   if [ $probefail -eq 0 ]; then
# Obtener el nombre del servidor que ha respondido a la consulta 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