Shell Script para verificar el ping al host remoto y al puerto abierto
Este script de shell le permite realizar un ping a un host remoto y verificar si el puerto mencionado está abierto en ese servidor.
Esto ayuda al administrador del sistema a realizar la prueba de ping y también a asegurarse de que exista algún problema con puertos específicos.
Script de shell de ping
#!/bin/bash if [ "$#" = "0" ]; then echo "Usage: $0 " exit 1 fi host=$1 port=$2 email="test@linoxide.com" subject="Script result" if ping -q -c 4 $host >/dev/null then ping_result="OK" else ping_result="NOT OK" fi nc_result=`nc -z $host $port; echo $?` if [ $nc_result != 0 ]; then port_result="not opened" else port_result="opened" fi message="Ping to host - ${ping_result}, port $port ${port_result}." if [ "$ping_result" != "OK" -o "$nc_result" != "0" ]; then echo "$message" echo "$message" | mail -s "$subject" $email fi
Salida de secuencia de comandos
Haga ping a localhost y compruebe si el puerto 22 está abierto (servidor ssh)
bobbin@linoxide:/$ ./script 127.0.0.1 22 Ping to host - OK, port 22 not opened. desktop:~/$
Entendiendo el script de ping
#Compruebe si el nombre del servicio pasó al script como argumento, si no hay argumentos (0), haga lo siguiente
si [ «$#» = «0» ];
entonces
#Escribir en el uso de la terminal
echo «Uso: $ 0»
# Dado que no hay argumentos, tenemos que salir del script y volver a ejecutar el usuario
salida 1
fi
#Escribir parámetros en variables
anfitrión = $ 1
puerto = $ 2
email = «test@linoxide.com»
asunto = «Resultado de la secuencia de comandos»
#Compruebe si ping ok -q a bastante mod, -c 4 para 4 comprobaciones
si ping -q -c 4 $ host> / dev / null
entonces
#Líneas siguientes escribe la variable de resultado
ping_result = «OK»
demás
ping_result = «NO ACEPTABLE»
fi
# Siguiente comando verificar si el puerto se abrió a través del comando nc y obtener el estado de salida del comando nc
nc_result = `nc -z $ host $ puerto; echo $?
# Verifique el estado de salida del comando nc y escriba los resultados en las variables
si [ $nc_result != 0 ];
entonces
port_result = «no abierto»
demás
port_result = «abierto»
fi
# Escribir mensaje que el script enviará por correo electrónico y escribirá en la salida
message = «Hacer ping al host – $ {ping_result}, puerto $ port $ {port_result}».
#A continuación, verifique si el ping o la verificación del puerto fallaron (haga ping si no está bien y salga del estado de nc si no es 0)
si [ «$ping_result» != «OK» -o «$nc_result» != «0» ];
entonces
echo «$ mensaje» # esta línea escribe un mensaje de advertencia en la terminal
echo «$ mensaje» | mail -s «$ asunto» $ correo electrónico # esta línea enviar correo electrónico
fi