Bash Script Leer listado de IP de un archivo de texto

Iniciado por lestherhack, 4 Julio 2016, 07:15 AM

0 Miembros y 1 Visitante están viendo este tema.

lestherhack

Hola estimados,

Aca matandome, quisiera saber comos seria el codigo para:

1. Leer un archivo de texto con un listado de IPs.
2. Hacerles Ping a cada una de ellas en orden de arriba hacia abajo y dependiendo de su respuesta ponerla en un archivo si esta activa o no.

Alguien podria hecharme una mano?

Se los agradeceria.

Saludos.

engel lex

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

lestherhack

Re:
#2
Pues en teoria nada, porq no se como comenzar a llamar con ping a cada IP de la lista. Si lo hago a una sola IP si lo puedo hacer. Estoy leyendo sobre entradas y salidas en bash pero no encuentro algo como lo que quiero o mas bien no he entendido donde guardar la salida de ping para luego leerla com cat y grep sed awk etc para luego copiarla e  otro archivo y usar ese para ir metiendo las IP validas : (  Pero por el trabajo me cuesta dedicarle tiempo para seguir practicando

El conocimiento debe de ser compartido, es el secreto de la evolucion del ser humano.




Tan solo si alguien me explica o induce con algun ejemplo podria continuarlo, o decirme donde tengo o puedo leer para alimentarme y no buscar info en otro lado q talvez no sea.

El conocimiento debe de ser compartido, es el secreto de la evolucion del ser humano.

MOD EDIT: No hagas doble post.

MCKSys Argentina

Cita de: lestherhack en  5 Julio 2016, 02:03 AM
Tan solo si alguien me explica o induce con algun ejemplo podria continuarlo, o decirme donde tengo o puedo leer para alimentarme y no buscar info en otro lado q talvez no sea.

Te dejo info sobre el tema que buscas:

http://stackoverflow.com/questions/14834625/reading-text-file-in-batch-script
http://stackoverflow.com/questions/3068929/how-to-read-file-contents-into-a-variable-in-a-batch-file
http://stackoverflow.com/questions/206114/batch-files-how-to-read-a-file

Saludos!
MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."


lestherhack

#4
Amigo, gracias por el apoyo ahi.

Pero el link posteado, es en batch para windows y el que estoy haciendo es bash en linux.

Saludos.

El conocimiento debe de ser compartido, es el secreto de la evolucion del ser humano.




Cita de: engel lex en  4 Julio 2016, 14:40 PM
Que llevas hecho?

#!/bin/bash

for file in $(cat fichero.txt);
do
ping -c 5 "$file"
done

MOD EDIT: No hagas doble post. Segunda advertencia.

MCKSys Argentina

Cita de: lestherhack en  5 Julio 2016, 08:45 AM
Amigo, gracias por el apoyo ahi.

Pero el link posteado, es en batch para windows y el que estoy haciendo es bash en linux.

Saludos.

No creo que sean muy distintos, pero aún así, te dejo una búsqueda para que investigues los resultados:

https://www.google.com.ar/search?q=linux+read+text+file+in+bash

Saludos!
MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."


Echizen

Buenas tardes...

Te dejo un par de tips para que lo armes, es un script muy simple lo que buscas hacer...

Los siguientes son los comandos que podras utilizar:

Código (bash) [Seleccionar]
cat <path/file> # Este comando lee el archivo de texto donde tienes las ip
sed -n '1p' #Este comando muestra la primer linea del texto
wc -l #Este comando cuenta la cantidad de lineas que tiene un archivo
ping <ip> # hace ping
$?     #variable reservada que contiene el resultado del ultimo comando ejecutado


Con esos comando, un par de variables y unos 'until' e 'if', vas a poder armar el script que buscas.

Espero que te sea de utilidad.

Saludos

lestherhack

Cita de: Echizen en  9 Julio 2016, 00:09 AM
Buenas tardes...

Te dejo un par de tips para que lo armes, es un script muy simple lo que buscas hacer...

Los siguientes son los comandos que podras utilizar:

Código (bash) [Seleccionar]
cat <path/file> # Este comando lee el archivo de texto donde tienes las ip
sed -n '1p' #Este comando muestra la primer linea del texto
wc -l #Este comando cuenta la cantidad de lineas que tiene un archivo
ping <ip> # hace ping
$?     #variable reservada que contiene el resultado del ultimo comando ejecutado


Con esos comando, un par de variables y unos 'until' e 'if', vas a poder armar el script que buscas.

Espero que te sea de utilidad.

Saludos
Hey man muchas gracias por los tip. Ya casi lo tengo armado de otra manera. Voy a subirlo en estos dias para ver si lo mejoramos.

Gracias de verdad.

El conocimiento debe de ser compartido, es el secreto de la evolucion del ser humano.

Echizen

Dale, subí lo que tenes así vemos como lo mejoramos...

Lo que tenes que hacer es un script muy simple y no lleva mas de 11 lineas de código.

Saludos