Hay ocasiones en las que puede ser necesario hacer que un script se ejecute solo si una PC tiene conectividad. Después de detectar si el enlace está activo, una manera frecuente de comprobarlo es utilizando el comando ping.
Mediante el comando ping
Variante simple:
(ping -q -c 1 algun_equipo_accesible > /dev/null 2>&1) && comando_a_ejecutar
Variante extendida:
#! /bin/sh
ping -q -c 1 algun_equipo_accesible > /dev/null 2>&1
if [ $? -eq 0 ] ; then
comando_a_ejecutar
else
echo -e "Imposible encontrar el equipo.\nProbablemene no hay conectividad.\n"
fi
No obstante, en ocasiones no podemos utilizar el comando ping porque el protocolo ICMP ha sido deshabilitado en nuestra PC o nuestro cortafuegos.
¿Que hacer entonces? Afortunadamente, existen maneras alternativas de realizar la comprobación, he aquí algunos ejemplos:
Mediante el comando host
Una alternativa que podemos buscar al comando ping es realizando una consulta DNS, que podemos ejecutar con el comando host.
Variante simple:
(host -t a algun_equipo_accesible > /dev/null 2>&1) && comando_a_ejecutar
Variante extendida:
#! /bin/sh
host -t a algun_equipo_accesible > /dev/null 2>&1
if [ $? -eq 0 ] ; then
comando_a_ejecutar
else
echo -e "Imposible encontrar el equipo.\nProbablemene no hay conectividad.\n"
fi
La comprobación mediante una consulta DNS es muy rápida, pero si algún equipo de la ruta tiene habilitada una cache para acelerar las consultas DNS, este método podría no funcionar.
Mediante el comando wget
Esta otra variante utiliza el comando wget en un modo especial, que solo responde si el sitio es o no accesible. No es tan rápida como la consulta DNS, pero podría resultar más confiable.
Variante simple:
(wget -q --timeout=5 --spider www.algun_sitio_accesible.org) && comando_a_ejecutar
Variante extendida:
#! /bin/sh
wget -q --timeout=5 --spider www.algun_sitio_accesible.org
if [ $? -eq 0 ]; then
comando_a_ejecutar
else
echo -e "Imposible encontrar el sitio.\nProbablemente no hay conectividad.\n"
Tomado de: http://gutl.jovenclub.cu/wiki/doku.php?id=tutoriales:detectar_conectividad
No hay comentarios:
Publicar un comentario