Para probar si una máquina tiene conectividad a internet puede utilizar el siguiente script:
#!/bin/bash
main()
{
ping -c 4 www.google.com > /dev/null
if [ "$?" -eq 0 ]
then
echo "Si hay internet";
else
echo "No hay internet";
fi
}
main
El código mostrado arriba hará 4 pings contra Google y si todo salé bien el comando retornará un 0 como estatus de salida (extraído con la variable $?). Luego, si las cosas salen mal retornará cualquier otro número mayor que 0. Se redirije la salida a /dev/null para no sacarla por pantalla o al correo del usuario dueño del proceso.
El script de arriba no funciona en redes donde se filtran paquetes ICMP. Debido a que estos filtros son habilitados comunmente podría agregarse la siguiente línea utilizando el comando wget.
#!/bin/bash
main()
{
wget www.yahoo.com > /dev/null
if [ "$?" -eq 0 ]
then
echo "Si hay internet";
else
echo "No hay internet";
fi
}
main
Muchas gracias, me has salvado la vida!!
ResponderEliminarMe alegro que haya sido de utilidad!
EliminarNos has salvado la asignatura. Al menos un tercio de ella. XD
ResponderEliminar