verificar ver trafico servidor revisar qué que puntos pueden probar los las internet están estado diagnostico conexiones conexion conectadas conecta con comprobar comando acceso bash networking ping connectivity

ver - Comprobación de la disponibilidad del host mediante el uso de ping en scripts bash



ver trafico de red linux (6)

Quiero escribir un script, que seguiría comprobando si alguno de los dispositivos de la red, que debería estar en línea todo el día, está realmente en línea. Traté de usar ping, pero

if [ "`ping -c 1 some_ip_here`" ] then echo 1 else echo 0 fi

da 1 no importa si ingreso una dirección IP válida o no válida. ¿Cómo puedo verificar si una dirección específica (o mejor cualquiera de los dispositivos de la lista de direcciones IP) se desconectó?


FYI, acabo de hacer una prueba utilizando el método anterior y si utilizamos multi ping (10 solicitudes)

ping -c10 8.8.8.8 &> / dev / null; echo $?

el resultado del comando multi ping será "0" si al menos uno de los resultados de ping es alcanzable, y "1" en caso de que no se pueda acceder a todas las solicitudes de ping.


Hay una versión avanzada de ping - "fping", que da la posibilidad de definir el tiempo de espera en milisegundos.

#!/bin/bash IP=''192.168.1.1'' fping -c1 -t300 $IP 2>/dev/null 1>/dev/null if [ "$?" = 0 ] then echo "Host found" else echo "Host not found" fi


No necesita los backticks en la declaración if. Puedes usar este cheque

if ping -c 1 some_ip_here &> /dev/null then echo 1 else echo 0 fi

El comando if verifica el código de salida del siguiente comando (el ping). Si el código de salida es cero (lo que significa que el comando salió exitosamente) se ejecutará el bloque siguiente. Si devuelve un código de salida distinto de cero, entonces se ejecutará el bloque else.


Ping devuelve diferentes códigos de salida dependiendo del tipo de error.

ping 256.256.256.256 ; echo $? # 68 ping -c 1 127.0.0.1 ; echo $? # 0 ping -c 1 192.168.1.5 ; echo $? # 2

0 significa host accesible

2 significa inalcanzable


Puedo pensar en un trazador de líneas como este para ejecutar

ping -c 1 127.0.0.1 &> /dev/null && echo success || echo fail

Reemplace 127.0.0.1 con IP o nombre de host, reemplace los comandos de eco con lo que se debe hacer en ambos casos.

El código anterior tendrá éxito, tal vez intente con una IP o nombre de host que sepa que no es accesible.

Me gusta esto:

ping -c 1 google.com &> /dev/null && echo success || echo fail

y esto

ping -c 1 lolcatz.ninja &> /dev/null && echo success || echo fail


up=`fping -r 1 $1 ` if [ -z "${up}" ]; then printf "Host $1 not responding to ping /n" else printf "Host $1 responding to ping /n" fi