Programacion Shell Bin/bash

Temas sobre programación ( php, c, sql, html, perl, python, ruby, java, bash, etc ) y recursos ( herramientas, frameworks, hosting, cms, etc )

Moderadores: akodo, maiku

Responder
danihj
Forista Nuevo
Forista Nuevo
Mensajes: 6
Registrado: Sab Feb 13, 2010 1:57 pm

Programacion Shell Bin/bash

Mensaje por danihj » Mié Feb 17, 2010 8:35 pm

Hola que tal?? tengo que hacer una practica en shell bash y la verdad que no se por donde cogerla, estoy un poco verde con esto. A ver si me podeis hechar una mano por favor!!!

Bueno la practica es la siguiente:


1 -> Reciba una lista de direcciones IP o nombres de máquina. Por medio de un fichero, indicándolo por el token ”-file”
$ ./ddiez_p2.sh file fichero_hosts

2 -> Por cada máquina, el script debe indicar si contesta
a ping o no. Ninguna otra información debe aparecer en la pantalla.

3 -> En caso de usar la opción ”-file”, el script debe comprobar la existencia del fichero indicado
y que tiene permisos de lectura sobre el mismo.

Mostrar un mensaje de error en caso de que el fichero que se pase como argumento no exista o no tengáis permiso de lectura sobre el mismo.
Por ejemplo, si el fichero "ips.txt" no existe o no tenemos permiso de lectura se mostrará un mensaje como el siguiente:

$ ./p2.sh -file ips.txt
p2: ips.txt Permiso denegado
$

Espero que me podais ayudar y resolver esto. Os lo agradecería muchisimo y de cualquier manera.
fpuga
Forista Mayor
Forista Mayor
Mensajes: 798
Registrado: Sab Ago 25, 2007 7:00 am
Ubicación: Galicia - España
Contactar:

Re: Programacion Shell Bin/bash

Mensaje por fpuga » Mié Feb 17, 2010 11:54 pm

un par de pistas

comprobar si tienes permisos sobre el fichero se hace muy fácil con un if y el comando test, busca en el google bash test y seguro que hay cositas

el contenido del fichero puedes meterlo en una variable con cat.

En un for vas iterando para cada uno de los valores de la variable y haciendoles ping.
Mi blog: [url=http://conocimientoabierto.es]Conocimiento Abierto[/url]
danihj
Forista Nuevo
Forista Nuevo
Mensajes: 6
Registrado: Sab Feb 13, 2010 1:57 pm

Re: Programacion Shell Bin/bash

Mensaje por danihj » Jue Feb 18, 2010 8:11 pm

Ya tengo esto del programa ahora solo me falta decir que direcciones contestan al ping. Y mostrar el error del ultimo apartado que no se donde mostrarlo. Otra cosa es saber si todos los datos de cuando hace el ping se pueden eliminar, es decir que directamente me muestre si el fichero existe y en caso de que exista que diga las maquinas que contestan al ping. Lo mas importante es decir que maquinas contestan al ping que lo malo es que no se hacerlo, aqui me quedo atascasdo


#!/bin/bash

#hay que hacer un (ping "Maquina") para comprobar si la maquina contesta

#!/bin/sh


#### Defino una función con todas las operaciones para poder llamarla recursivamente. Las funciones no se ejecutan hasta que no
#### se les llama o invoca

ejecucion(){

clear

FILE=servidores.txt
if [ -f $FILE ]; then
echo el fichero $FILE existe
else
echo No existe el fichero
exit
fi

for direccion in `cat $FILE`

# Realiza un cat del fichero y almacena ciclicamente cada linea en la variable $server. Es decir realiza un for
# tantas veces como lineas tenga servidores.txt y almacena el contenido de la linea en la variable $server. Para cada ejecución
# del for realiza lo que está entre el do y el done.
do

echo
echo Realizo un ping a la maquina $direccion
echo
ping -w 1 $direccion


### Manda 1 paquete de trafico icmp al destino almacenado en server.

done
}

ejecucion

#### Esta llamada externa es la que se va a ejecutar la primera vez
fpuga
Forista Mayor
Forista Mayor
Mensajes: 798
Registrado: Sab Ago 25, 2007 7:00 am
Ubicación: Galicia - España
Contactar:

Re: Programacion Shell Bin/bash

Mensaje por fpuga » Sab Feb 20, 2010 1:16 pm

Todos los comandos de linux tienen un código de salida, puedes ver cual es este código ejecutando

Código: Seleccionar todo

echo $?
justo cuando acaba tu comando.

Para que la salida de un comando no salga por pantalla redireccionala mediante un pipe a /dev/null

La próxima vez que pongas código trata de pegarlo tabulado dentro de las etiquetes [ code ] si no es imposible leerlo
Mi blog: [url=http://conocimientoabierto.es]Conocimiento Abierto[/url]
danihj
Forista Nuevo
Forista Nuevo
Mensajes: 6
Registrado: Sab Feb 13, 2010 1:57 pm

Re: Programacion Shell Bin/bash

Mensaje por danihj » Lun Feb 22, 2010 1:16 am

Si si lo del a/dev/null ya lo tenia hecho, lo que no sabia era el comando echo $? !!!! Muchisimas gracias por la ayuda!!! espero devolverte el favor!!!
fpuga
Forista Mayor
Forista Mayor
Mensajes: 798
Registrado: Sab Ago 25, 2007 7:00 am
Ubicación: Galicia - España
Contactar:

Re: Programacion Shell Bin/bash

Mensaje por fpuga » Mié Feb 24, 2010 12:07 am

no hay de que :)
Mi blog: [url=http://conocimientoabierto.es]Conocimiento Abierto[/url]
Responder
  • Similar Topics
    Respuestas
    Vistas
    Último mensaje