¿Cómo puedo hacer que el ping de Linux muestre el tiempo de espera de las solicitudes en lugar de omitir la salida?
Al igual que la versión de ping de Windows.
linux
networking
ping
Andre
fuente
fuente
Respuestas:
fping no me funcionó ... En mi caso, la mayoría del tiempo que quiero ver esto es básicamente durante el reinicio del servidor ... esto funciona bastante bien en Windows ...
Construyo un script simple (expandiendo la respuesta de @entropo) para ayudarme en eso, lo que puede ayudar a responder esta pregunta:
https://gist.github.com/brunobraga/7259197
Y el uso es algo como:
fuente
Lo mejor que encontré fue usar el indicador -O (tenga en cuenta que no funciona en todas las distribuciones, usando Linux Mint 17.1 Rebecca IPUTILS-PING 3: 20121221-4ubuntu1.1)
De la página del manual:
-O Report outstanding ICMP ECHO reply before sending next packet. This is useful together with the timestamp -D to log output to a diagnostic file and search for missing answers.
fuente
ping
; en Debian Wheezy me sale "ping: invalid option -- 'O'
", pero en Jessie funciona como lo anotó. Tal vez desee actualizar su respuesta para incluir esta información. (También he enviado una edición sugerida para usar texto preformateado para la salida y la información de la página del manual)Cuando uso ping para ver si un host está arriba en los scripts de shell, hago algo como esto:
ping -W 1 -c 1 $HOST 2>&1 > /dev/null || (echo -n "dead!"; false) && command-that-needs-host-to-be-up
Básicamente, envía un ICMP que se agota en un segundo sin salida y usa el código de salida para bloquear la acción.
fuente
No hay camino para lo común.
ping
Para hacer eso. Si está intentando escribir algo, tiene algunas opciones:Si el ping falla,
$?
será 1, si el ping es exitoso,$?
será 0.La otra opción es usar
fping
Eso funciona mucho como Ciscoping
:fuente
El script anterior de bruno.braga funciona bien, sin embargo, personalmente prefiero usar un alias en un perfil de shell (como .bashrc) para que pueda ser un caso de uso diario.
Mi solución a continuación también calcula automáticamente el número de secuencia de solicitud de ECHO:
Aquí está el ejemplo de salida cuando el host es inestable con un tiempo de espera:
Por supuesto, el inconveniente es que no hay estadísticas al final cuando se presiona CTRL-C. Si lo desea, también sería posible calcular min / avg / max mediante shell script, mdev está muy lejos del alcance.
fuente
Tengo miedo pero no hay una solución al 100% con el ping estándar. Incluso con ping -v para una salida detallada, el ping sería silencioso en caso de tiempos de espera. Podrías intentar usar:
Esto dejaría de hacer ping después de 2 segundos y luego mostraría la cantidad de paquetes transmitidos y la pérdida de paquetes. Otra opción sería utilizar mtr .
fuente
fuente
fping
es bueno, y por cierto el-e
no es necesario cuando-l
o-c
se agrega, solo se puede usarfping -l 8.8.8.8
, la salida es la misma.Me gusta mucho el script de shell de Bruno. Agregué una línea para crear un archivo con todos los fallos.
eco -e "
date +'%Y/%m/%d %H:%M:%S'
- host $ host es \ 033 [0; 31mdown \ 033 [0m "& gt; & gt; ./lostpackets.txtfuente
Sin scripting nada
ping -f -i 1 hostname
Ventajas : comando estándar de Linux - no hay que instalar ni script.
Desventajas :
Con un guión mínimo.
Desventajas : No obtienes estadísticas al final y no puedes usar estas 3 opciones de ping:
-i
para alterar el intervalo entre el envío de paquetes (está codificado a 1 seg)-W
para alterar el tiempo de espera (está codificado a 1 seg)-c
parar después de enviar paquetes NPor cierto: este es uno de los ejemplos extremadamente raros de funcionalidad que realmente extraño en una herramienta CLI de Linux, pero que encuentro en una herramienta de Windows. La exección que prueba la regla como dicen :-)
fuente
Si desea realizar un ping continuo como Windows y con marca de tiempo, utilice este. Siéntase libre de reemplazar
192.168.0.1
con su propia dirección IPEjemplo de respuesta OK
Ejemplo de solicitud agotada
fuente
El ping normal realmente te muestra los tiempos de espera. Al observar el valor seq = entre pings, puedes decir cuántos tiempos de espera
EG 3 tiempos de espera ocurrieron entre los 2 pings anteriores desde que el primero fue
seq=8
y el segundo fueseq=11
(9 y 10 fueron tiempos muertos)seq=sequence
.fuente