Detectar equipos fuera de combate [Script]

detectar dispositivos desconectadosAunque soy consciente de que existen soluciones para la monitorización de redes (a mi mente, entre otros, vienen tanto Nagios como Cacti) mucho más eficientes y sofisticados que el script que os quiero presentar en este artículo ni soy administrador el administrador de la red de mi instituto (al menos no oficialmente 😉 ) ni cuento con los recursos suficientes (especialmente tiempo) para abordarlo.

Básicamente lo que necesito es saber cuándo se ha caído alguno de los puntos de acceso wifi (que por no tener no tienen SNMP) o a alguna impresora en red le ha dado por dejar de funcionar y, para ello, el siguiente script (que no deja de ser un ping “vitaminado”) me viene de perlas.

En mi “defensa” argumentar que es una versión “beta-peta” creada en los 10 minutos que me “sobraron” el otro día en la “guardia TIC” que tengo asignada (y que espero haber aprovechado convenientemente) por lo que agradeceré cualquier sugerencia y/o corrección que ayude a mejorarlo.

La idea es hacer ping a una lista de dispositivos y, para evitar tener que estar mirando los resultados uno a uno, quiero que marque en rojo las direcciones IP de los dispositivos que no están visibles en la red.

El script queda del siguiente modo

clear;ROJO='\033[0;31m';NORMAL='\033[0m'; for f in {1,8,3}; do echo -n "192.168.0.$f "; if [[ $(ping -c 1 192.168.0.$f | grep ", 0% packet loss" | wc -l) > 0 ]] ; then echo "Ok"; else echo -e "${ROJO}Fallo${NORMAL}" ; fi; done

donde:

  1. Lo he puesto queriendo en una única línea por comodidad.
  2. El for in {…} es de pruebas, sírvete utilizar un fichero de texto con una línea por equipo que quieras revisar.
  3. El parámetro -n es para que el comando echo no añada un retorno de línea y aparezcan juntos tanto la dirección IP como su “estado”
  4. El parámetro -e es para que echo interprete los códigos ANSI y poder utilizar el color rojo para destacar las IPs fuera de “combate”

CONCLUSIÓN

Sencillo script que me permite conocer rápidamente qué dispositivos de red han dejado de funcionar en la red del instituto en el que trabajo.

Si os parece interesante (y si no, se agradece la crítica constructiva porque igualmente me ayudará a mejorarlo) no dudes en plantear cualquier idea que se te pueda ocurrir (a mi, por ejemplo, conforme escribo ésto, se me está ocurriendo que estaría bien indicar en el fichero de las IPs, el nombre del dispositivo para poder localizarlo sin tener que mirar la “chuleta” que tengo en el tablón de corcho 😉 )

12 comentarios en “Detectar equipos fuera de combate [Script]

    • La verdad es que no (gracias)

      Podría utilizarlo como una forma de optimizar el proceso pero al ser pocos los equipos que debo “vigilar” no termina de merecerme la pena incluirlo (con otro volumen sería muy recomendable hacer uso de fping) pues pierdo la “compatibilidad” (fping no se encuentra instalado por defecto en los equipos del instituto y, desgraciadamente, tampoco tengo permisos de administración en ellos)

      Dejo anotada la referencia para cuando me “crezca” la “granja de enanos” que deban ser vigilados 😉

      Gracias compi tanto por comentar como por enseñarme esta herramienta.

  1. Julio dijo:

    Yo uso algo muy parecido, dejo un script en una máquina y lo dejo ejecutando cada 10 minutos por ejemplo. Me apoyo en el programa sendemail que me permite enviar correos electrónicos.

    El programa dice así, hay que cambiar las direcciones ip de la máquinas a observar y los datos para conectar con el servidor de correo.

    Obviamente se puede cambiar para asociar correo electrónico de aviso con la máquina a ser investigada.

    Esto funcionará si eres un adicto al correo electrónico.

    #!/bin/bash
    HOSTS=”192.168.110.51 192.168.158.52 [nombre accesible desde donde se ejecuta]”

    COUNT=4
    ## Variables para correo
    SMTP_SERVER=[IP o servidor de correo]
    REMITENTE=[usuario-servidor-correo@midominio.com]
    DESTINATARIO=[destinatario@sudominio.com]
    USUARIO=[usuario-servidor-de-correo]
    PASSWORD=[contraseña-servidor-correo]

    Asunto=””
    for myHost in $HOSTS
    do
    count=$(ping -c $COUNT $myHost | grep ‘received’ | awk -F’,’ ‘{ print $2 }’ | awk ‘{ print $1 }’)
    echo “Probando la conectividad de “$myHost
    if [ $count -eq 0 ]; then
    # 100% failed
    Asunto=”Máquina : $myHost está caído (comando ping falló desde $HOSTNAME) a las $(date)”
    echo $Asunto
    sendEmail -f $REMITENTE -t $DESTINATARIO -s $SMTP_SERVER -xu $USUARIO -xp $PASSWORD -o message-charset=utf-8 -u “$Asunto” -m “Revisa este host que parece que no está operativo\nJulio.”
    fi
    done

    El tuyo desde luego es mucho más sencillo.

    • Son prácticamente iguales (salvo que yo no puedo utilizar SMTP por “exigencias del guión”)

      Tengo otro script que se ejecuta en una máquina a la que llamo “Enigma” (jojojo), que cuando falla la conexión con alguno de los equipos, lo anota en un fichero y al final me lo manda por correo.

      Gracias por compartir código y experiencia Julio

  2. Hola: ¿te has planteado solicitar esta funcionalidad a CGA, mediante un RFC, para que lo incluyan, por ejemplo, en Gesuser3? Así, todos los centros se beneficiarían y no tendrían que andar con “apaños”. Enlace: El servicio está ahí esperando.

    ¿Sabes que puede haber puntos de acceso que responden a ping pero pueden estar desconfigurados?

    Un saludo.
    Jesús Molina

    • Hola Jesús, como idea no está mal pero sospecho que no sería muy utilizado salvo por algunos “locos” como yo.

      Se agradece el enlace (espero no te importe que lo haya ocultado en el texto de tu comentario para mejorar la claridad).

      Respecto al problema de desconfiguración creo tenerlo “controlado” ya que la máquina Enigma que uso en el centro (es la encargada de comunicar las nuevas claves a los AP wifi, de ahí su nombre 😉 ) me envía un email con aquellos puntos de acceso que no se están portando “bien” 😇

  3. Yo lo utilizaría, pues da confianza a los que “vigilamos” el equipamiento.

    Los puntos de acceso a los que te refieres deben ser”privados”.

    La aplicación que sugiero es similar a la de detección de impresoras de red (detección manual). Opcionalmente, se podría añadir detección periódica, incluso aviso al coordinador tic mediante email. Incluiría interfaz para gestionar las macs de estos equipos, de forma manual de forma parecida a la gestión de macs wifi permitidas.

    En todos los centros TIC la configuración de la wifi “andared” es gestionada por los servidores TIC. Todo esto lo mantiene el CGA de forma remota. Por eso invitaba a utilizar el servicio de peticiones RFC del CGA, para que dispusiéramos de una herramienta común, mantenida por ellos, en Gesuser 3 (enlace)

    • Y tan privados que son los puntos de acceso: la máquina Enigma sólo habla con gente de su confianza 😉

      GesUser tiende a perder una de nuestras impresoras de red y llevo casi un año notificando que está ocurriendo y sigo igual… técnicamente (por su MAC) no debería cambair de IP pero en la práctica no deja de “saltar”. Me tiene tan aburrido que estoy por pincharla con un cable usb y dejarme de cables de red y scripts que no funcionan del todo bien 😏

      Desde aquí ofrezco desinteresadamente tanto las líneas del script como mi ayuda (no creo que sea necesaria pero ahí está) si sirven para implementar el servicio que planteas Jesús.

      Un saludo

  4. azamora dijo:

    Las peticiones de servicio que facilita el CGA a través de su página web es algo que se debería difundir más entre los coordinadores TIC de los centros educativos públicos de Andalucía. Hay que intentar beneficiar a los demás cuando se está pidiendo algo para mejorar la infraestructura y las aplicaciones y herramientas con las que se dotan a los centros educativos.

    Me parece una muy buena idea el tema de gestionar los PA desde Gesuser. La pega estaría en aquellos centros educativos que no tienen servidores TIC y que no disponen de Gesuser.

    Luego está la falta de homogeneidad entre centros que tienen servidores y los que no. A los primeros se les dota de valor añadido como es Gesuser -gestión de usuarios-, SAUL, o por ejemplo la aplicación que se está pidiendo para gestionar los PA.

    • Desgraciadamente, siempre habrá centros de primera y de “segunda” y poco sospecho que vamos a poder hacer; uuummm… ¿simulamos el servidor con una Raspberry Pi? 😉

      Sería un proyecto interesante, ¿alguien se apunta aunque sea para pedir cosas que deba incluir? La toma de requisitos no es un tema baladí jejeje

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s