Script para realizar ping según rango de ips

Necesito realizar un ping en linux a una serie de máquinas de mi red para ver si tienen conectividad. Tengo un script en linux el cual realiza pings desde un archivo, pero necesitaría que me lo realice según le de un intervalo de dos redes, como las redes son de clase C, no se si se podrá dar el rango y con un cut cortar el último octeto y pasarlo mediante un bucle.
No sé algo así, es que los scripts no se me dan muy bien.
Haber si me puedes echar una mano.

1 Respuesta

Respuesta
1
Empezaré por decir que mis conocimientos de linux son limitados y, sobre todo, poco utilizados, por lo que no me considero muy experto en scripts linux (ni tampoco, en realidad, en MSDOS, pero si quieres tener posibilidades de echar una mano en esta web te tienes que declarar "experto").
Pero no por eso voy a dejar escapar la ocasión de intentar ayudarte.
Si te he entendido bien quieres crear un script (o guión) que te permita lanzar ping a una serie consecutiva de direcciones IP. No sé si los parámetros que quieres pasarle son la primera dirección IP y el número de estaciones a partir de ella, o prefieres pasarle la primera y la última (asumiendo, como dices, que es una red clase C). Si utilizamos la primera opción (dirIP + número de estaciones) creo que podría valer esto (no sé que shell usas, pero voy a suponer que es la típica, que ya ni recuerdo como se llama):
#!/bin/sh
pr=`echo $1 | cut -d. -f1-3`
ini=`echo $1 | cut -d. -f3`
fin=$2
echo $pr
for ((a=ini;a<=fin;a++))
do
ping -c 1 $pr.$a
Done
Si quieres alguna aclaración o complicar el guión con alguna otra cosa (por ejemplo salvar a un archivo el resultado de los ping) no tienes más que decirlo.
Suerte,
GGG
Muchas gracias, con lo que me has indicado voy haber si consigo hacerlo. Bueno el script necesitaba por un lado introducir el intervalo de ips a testear con dos read y dos variablesme parece que se hacía, y por otro que si encuentra conectividad me salga un mensaje afirmativo, y sino, negativo que supongo que habrá que hacerlo con un if.
Si quieres ir probando haber como saldría, yo voy a ponerme ahora haber si me sale algo, pues yo creo que tengo incluso menos idea que tú. Haber si entre los dos aprendemos algo nuevo.
Saludos
Gracias, con tu ayuda, me has dado la idea de como hacerlo, el cut he cambiado al final el parámetro por -c ya que no me cogía los octetos, así que lo he hecho por culumnas en vez de por campos. Y bueno el for también lo he cambiedo un poco ya que con el ++ no iba, para que cuente he hecho n+=. Luego le he puesto en el ping la sentencia >/dev/null 2>&1
Para que salga más limpia la pantalla, y bueno poco más. Un saludo y gracias

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas