Script con ping

Forums: 

Que tal

Tengo un problema con una tarea que me pusieron: Tengo que crear un Programa que pide una direccion IP al usuario y reliza un 3 pings con intervalos de 2 segundos y le informa al usuario si esa maquina esta arriba (up) o si esta abajo (down).

Ya hago el ping pero la verdad no encuentro la forma de hacer que el equipo script reconozca si el ping fue exitoso o no.

ESto es lo que llevo:

#!/bin/bash

$intervalos de 2 segundos y le informa al usuario si esa maquina esta arriba ($
read -p "Ingrese una direccion IP: " ip

ping -c 3 -i 2s $ip

Bien, lo que podrías es

Bien, lo que podrías es hacer una pregunta si el comando fue exitoso o no con la opción:

echo $?

si el resultado es 0 es (comando correcto) quiere decir que la máquina está arriba (up) si el resultado es 1 entonces la máquina esta apagada o (down)

Adaptala a tu script.

Saludos,

Hola Lo que necesitas es lo

Imagen de Tul0X

Hola
Lo que necesitas es lo siguiente

aux=`/bin/ping -c 3 DIRECCION IP |grep -c time`
if test $aux -eq 1 ; then
echo "CONEXION NO EXITOSA"
else
echo "CONEXION FUE EXITOSA"

fi

Las direcciones las puedes meter dentro de un for y donde dice DIRECCION IP solo pones la variables que corresponde

Espero te sirva
Saludos

Tulox

Saludos

((Tul0X))

Por desgracia, no. Cuando

Imagen de acl

Por desgracia, no. Cuando usas backticks (`) lo que haces es reemplazar la salida (stdout), por la expresión, no el estatus. Por lo tanto, la prueba $aux -eq 1 va a ser falsa a menos que grep genere un 1, pero es posible que grep encuentre más de una línea.

Hay que probar el estatus de salida, que queda guardado en $? O si lo vas a hacer en difícil, al menos compara con -ge

--
haber != a ver
ha != a

uh

La idea es buena del script pero si tiene algun firewall aunke este prendida no te dara respuesta lo mejor sea que uses un ping por mac con el sgiuiente comando ejemplo ;
arping -I eth1 192.168.15.2

donde esta la eth1 tienes que ir la tarjeta correcta de tu red

Esto ya lo solucione

Saludos

El problema ya lo solucione pero voy a probar a forma que me dices tu gracias por su colaboracion.

#!/bin/bash

# Programa que pide una direccion IP al usuario y reliza un 3 pings con interva$
read -p "Ingrese una direccion IP: " ip

if $(ping -c3 -i 2 $ip > /dev/null);then
echo "La maquina $ip esta arriba (up)"
else
echo "La maquina $ip esta abajo (down)" | mail -s Resultado stiven.garcia@gmail.com
fi

Lo que sabemos es una gota de agua... Lo que ignoramos es el oceano

Si solucionaste el problema

Imagen de damage

Si solucionaste el problema postea la soluciòn y compartela, yo te recomedaria usar Cacti para que tengas de modo gràfico el historico del ping de tus equipos y asi se te mejore y facilite tu trabajo.
Keep The Fire Burning.....
Stryper 1988