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,
gracias
Muchas gracias por tu ayuda
Lo que sabemos es una gota de agua... Lo que ignoramos es el oceano
Hola Lo que necesitas es lo
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
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
Eso solo te funciona entro
Eso solo te funciona dentro del mismo enlace. Cuando quieras hacer ping a otra red, no vas a tener nunca respuesta.
--
haber != a ver
ha != a
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
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