Hace unos días me encontré con el script pingservers de I. Attir y lo modifiqué un poco a mi gusto.
El script toma una lista de direcciones ip de los servidores que queremos revisar, una ip por cada renglón y les hace ping, si obtiene respuesta entonces muestra un mensaje de OK, de lo contrario, muestra un error en la pantalla, hace un nmap a la misma dirección para comprobar que este totalmente fuera de servicio. Además, también guarda un registro de los errores en el archivo noping.log para su futura referencia.
Originalmente el script manda un correo al administrador, pero a mi no me sirve esa opción, primero porque si el que falla es el servidor de Internet, pues nunca voy a recibir el correo, además me gusta ejecutarlo manualmente para revisar la salud de mi red y si hay algún problema atenderlo inmediatamente.
Mis modificaciones incluyen una traducción al español de los mensajes, agregué el comando nmap (que tiene que estar instalado) y le agregué un poco de color.
#!/bin/bash # pingservers.sh # ============== # Hace ping a una lista de direcciones IP, revisa si los servidores estan activos o no. # Escrito por:I. Attir # http://www.good-linux-tips.com/2014/06/script-checking-if-servers-are-up.html # # Modificaciones y traducción al Español por: Francisco J. de la Torre Inguanzo # https://linuxmanr4.com/2014/06/06/script-en-bash-que-hace-ping-tus-servidores/ clear if [ "$1" = "" ] ; then # No se pasó una lista de ips echo "Error: Por favor introduce un nombre de archivo válido, que contenga las direcciones IP para hacer ping." exit 1 fi if [ ! -f "$1" ] ; then # Archivo inválido. echo "Error: No puedo encontrar el archivo "$1"." exit 2 fi echo "(*) Haciendo ping a los servidores contenidos en el archivo "$1", por favor espere..." echo while read IP do ping -c 3 "$IP" >& /dev/null if [ "$?" != "0" ] ; then # Houston, tenemos un problema. (echo -n "$IP " ; date) | tee -a noping.log echo -e "${IP} !!! \e[0;31m[X]\e[1;37m" nmap "$IP" else echo -e "$IP \e[1;32m[OK]\e[1;37m" fi done < "$1" echo echo "Listo!!!"
Hola me regalarias el codigo del script, para poder enviarlos al correo
Pues ahí está en el mismo artículo … leale.. leeeealeeeeeee 🙂
Modifique el código para hacer el envío por correo, por si aun te interesa…
Hice uno parecido con Ruby, es el que uso actualmente.
Hola como estas?
Necesito un script similar, solo que haga ping y si funciona todo bien envie un mail con thunderbird con un mensaje positivo, y si una ip no responde o varias de ellas me mande un mail con un mensaje como «La/s siguiente/s ip no responden» y el llistado de las ip que no respondan.
Me podras ayudar?
gracias!
Hola Luis,
Tengo uno que manda correos pero esta hecho en Ruby, no se si te interese… Ruby Ping un script para monitorear equipos de red.
Saludos !!!
Simple pero efectivo. ¡Me gusta!
Saludos.
Saludos, interesante, yo hice algo parecido pero con python, use el comando fping que me devuelve si esta vivo o no, adicional a eso también miro la capacidad en disco de los Servidores
Es lo bonito de esto, se que hay soluciones mucho más completas, pero por el momento este script esta bien y justo hoy puso a prueba su utilidad 🙂