Pequeña aplicacion Bash para ver si vuelve un enlace

Hoy me paso que tenia un enlace caido en un cliente y para enterarme en el momento que ese enlace vuelva a estar up hice esta pequeña aplicacion que comparto aqui:

Creo un archivo en /usr/local/bin con el nombre que quiera, por ejemplo test-enlaces (lo hago en esa ruta para ejecutarlo directo por el path)

Código:
#sudo nano /usr/local/bin/test-enlaces

y copio este codigo:

Código:
#!/bin/bash
if [ ! -z $1 ]
then
        ping -c 2 $1
        if [ v$? -eq 0 ] ; then
        zenity --warning --text "*** El enalce $1 responde ***"
        fi
else
        echo "ERROR: Debe ingresar la IP"
        echo "Uso: $0 <IP Address>"
fi

El $1 es la variable a la que asigna el primer argumento que le de.
Osea que podria pasar lo siguiente:
#test-enlaces argumento1 argumento2
y en el codigo va a ser:
$1= argumento1
$2= argumento2

Y asi podria tunearlo mas al programita.

Para darle permisos al archivo que lo pueda ejecutar sin permisos le hice directamente 

Código:
#chmod 777 /usr/local/bin/test-enlaces

(Estos permisos son solo de ejemplo y no es necesario que sea 777, revisar el comando chmod para mas info sobre asignar permisos)

y lo ejecuto por su nombre y le paso el argumento que quiero seguido del nombre.

por ejemplo:

Código:
#test-enlaces 192.168.1.1

o

#test-enlaces routerventas

routerventas lo resuelve directamente por DNS.

Ahora, para dejarlo ejecutando con un timer para que lo haga periodicamente lo hago con el comando watch.
 

Código:
#watch -n 600 test-enlaces routerventas

El "-n 600" significa segundos => 10 minutos en este caso.

Nota: Tienen que tener instalado Zenity

Espero que les sirva. A mi me vino barbaro para no dejar tirando ping todo el tiempo y estar mirando la salida del ping en consola.
Aca me avisa con un AlertBox y me entero en el momento.
Seguramente hay alguna forma mejor de hacerlo pero a mi me salio esta y me funciona. Ademas es esto lo que puntualmente necesitaba.
Si alguien lo quiere mejorar adelante.
No es que le vaya a servir mucho a nadie pero esta bueno ver como se pasan parametros y esas cosas, sirve para aprender algo tambien.

Gracias a Cristian que ya me aporto su acostumbrada ayuda.

Salu2

Tags: 

Predefined Sections

Seccion Cisco   Seccion Linux   Seccion Microsoft   Seccion Redes   Seccion Seguridad   Seccion General