Demo entry 6632296

Ping_Bash

   

Submitted by anonymous on Jul 24, 2017 at 17:50
Language: Bash. Code size: 2.2 kB.

	#!/bin/bash
# ==============
# 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
# http://linuxmanr4.com/2014/06/06/script-en-bash-que-hace-ping-tus-servidores/
#
# Modificaciones con  IP, Nombre y envio de correo por: Hector J. Garcia Rojas
# http://linuxlene.com/ping_bash.html

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

IFS=' ' read -a array <<< "$IP"

   ping -c 3 "${array[0]}" >& /dev/null

 if [ "$?" != "0" ] ; then   # Houston, tenemos un problema.
   (echo -n "${array[0]}" ; date) | tee -a noping.log
   echo -e     "${array[0]} !!! \e[0;31m[X]\e[1;37m"
   nmap "${array[0]}"

	# servidor de salida

	FROM_EMAIL_ADDRESS="Aqui tu correo"
	FRIENDLY_NAME="Aqui tu nombre"
	EMAIL_ACCOUNT_PASSWORD="Aqui tu contraseña"
	SERVER_SMTP="Aqui el servidor smtp (ejemplo google: smtp://smtp.gmail.com:587)"

	# destinatario del mensaje
	TO_EMAIL_ADDRESS="Aqui los correos destinos, para mas de 1 lo separas por , "

	EMAIL_SUBJECT="Error de comunicación con el servidor ${array[1]}"
	# todo lo que pongamos en el echo, sera el contenido del correo


echo "Existe un problema de conexión en el equipo ${array[1]} con dirección IP ${array[0]}

Este es sólo un mensaje de aviso. No es necesario que conteste este mensaje.

Saludos...

	" | mailx -v -s "$EMAIL_SUBJECT" \
	-S smtp-use-starttls \
	-S ssl-verify=ignore \
	-S smtp-auth=login \
	-S smtp=$SERVER_SMTP \
	-S from="$FROM_EMAIL_ADDRESS($FRIENDLY_NAME)" \
	-S smtp-auth-user=$FROM_EMAIL_ADDRESS \
	-S smtp-auth-password=$EMAIL_ACCOUNT_PASSWORD \
	$TO_EMAIL_ADDRESS



 else echo -e  "${array[0]} \e[1;32m[OK]\e[1;37m"

 fi

done < "$1"

echo
echo "Listo!!!"

This snippet took 0.00 seconds to highlight.

Back to the Entry List or Home.

Delete this entry (admin only).