Foros del Web » Administración de Sistemas » Unix / Linux »

Ayuda con funcion en shell script- URGENTE

Estas en el tema de Ayuda con funcion en shell script- URGENTE en el foro de Unix / Linux en Foros del Web. Buenas tardes, Al ejecutar el scrip me da un error en la funcion listao.(os paso un trozo de el , si lo quereis entero os ...
  #1 (permalink)  
Antiguo 25/02/2011, 11:50
 
Fecha de Ingreso: febrero-2011
Mensajes: 1
Antigüedad: 13 años, 2 meses
Puntos: 0
Ayuda con funcion en shell script- URGENTE

Buenas tardes,

Al ejecutar el scrip me da un error en la funcion listao.(os paso un trozo de el , si lo quereis entero os puedo pasar)

En una parte del scrip hago la llamada a la funcion de la siguiente manera:

if [ $listar = 0 ]
then
#recupero tar
tar cf - $DIR_BACKUP | ssh $USER@$HOST "cd \$HOST_DIR && tar -xf -"

listao "$HOST,$hosto,$DIR_BACKUP,$HOST_DIR,$USER,$FICH_TR AZA,$FICH_LISTADO"

# restauro buzon terra
ssh terraing@fs "cd /terra/ffs/bin && ./mgr -s \$servidor_terra -p 4201 -w \$password2 REPAIR MAILBOX \$usuario@\$dominio REPAIR=1"
if [ $off = "ok" ]
then
ssh terraing@tfs "/tnet/ffs/bin/mgr -s tfs -p 6212 -w \$password1 user modify \$usuario \$dominio ENABLEDFLAG=true"
fi
fi


y el codigo de la funcion listao es :

listao ()
{
HOST=$1
hosti=$2
DIR_HOST=$3
DIR_DEST=$4
USER=$5
FICH_LIST=$6 #fichero trazas
FICH=$7 #fichero listado
FICH_DEVOLVER=/tmp/devolver.txt

ssh terraing@HOST "scp \$FICH_LIST hosti:/tmp"
P=0
while read line
do
for i in `grep $line FICH_LIST`
do
if [ $line = "$i" ]
then P=1
fi
done
if [ $P = "1" ]
then
#echo "NO OK $line"
printf "$line\n" >> $FICH_DEVOLVER
tar cfX DIR_HOST $FICH_DEVOLVER - | ssh $USER@$HOSTI "cd \$DIR_DEST && tar -xf -"
fi
done < $FICH
}

Me dice :

line 149 : salao command not found.

y es una funcion, alguien me puede ayudar..


Aunque sea un poco abusar si alguien supiera como puedo mandar el siguiente codigo a traves de ssh sin darme error se lo agradeceria.

ssh $USER@$HOST "
cd $total
if [ test -f $main ]
then
cp main.db main.db.$o
mv main.db.$o /tmp
`$comando_pab/db_dump -f /tmp/main.db.$1 -h $pab main.db.$o`
#recupero tar
#tar "$DIR_BACKUP,$HOST,$USER"
tar cf - $DIR_BACKUP | ssh $USER@$HOST "cd \$HOST_DIR && tar -xf -"
`$comando_pab/db_load -f /tmp/main.db.o -h $pab $main`
# restauro buzon terra
ssh terraing@fs "cd /terra/ffs/bin && ./mgr -s \$servidor_terra -p 4201 -w \$password2 REPAIR MAILBOX \$usuario@\$dominio REPAIR=1"
else
find . | grep $db >>/tmp/agendas.txt
while read line5
do
cp $line5 /tmp
done < /tmp/agendas.txt
# recupero tar
tar cf - $DIR_BACKUP | ssh $USER@$HOST "cd \$HOST_DIR && tar -xf -"
#tar "$DIR_BACKUP,$HOST,$USER"
`$comando_pab/db_load -f /tmp/$line5 -h $pab $main`
# # restauro buzon terra
ssh terraing@fs "cd /terra/fs/bin && ./mgr -s \$servidor_terra -p 4201 -w \$password2 REPAIR MAILBOX \$usuario@\$dominio REPAIR=1"
if [ $off = "ok" ]
then
ssh terraing@tfs "/tnet/fs/bin/mgr -s tfs -p 6212 -w \$password1 user modify \$usuario \$dominio ENABLEDFLAG=true"
fi
fi"
  #2 (permalink)  
Antiguo 28/02/2011, 05:20
 
Fecha de Ingreso: junio-2009
Ubicación: Madrid
Mensajes: 402
Antigüedad: 14 años, 10 meses
Puntos: 20
Respuesta: Ayuda con funcion en shell script- URGENTE

bad25, sabes que es un bbcode? Si lo sabes, usalo.

Cual es la linea 149?
Donde llamas la funcion?
Donde tienes definida la funcion?

Se mas claro
  #3 (permalink)  
Antiguo 08/03/2011, 05:26
 
Fecha de Ingreso: abril-2010
Mensajes: 1
Antigüedad: 14 años
Puntos: 0
Respuesta: Ayuda con funcion en shell script- URGENTE

Hola.
Ese mensaje que da suele ser porque no esta cargada la funcion.
Es preciso cargar las funciones antes de ser llamadas, es decir, ubicarlas al principio del script, o si estan escritas en un fichero aparte, cargar éste con
. ./fichero-funciones

A tu secunda pregunta, hay que añadir la opción "-c" antes de todas las acciones a realizar en el equipo remoto.
Ej:
ssh user@equipo -c "cd dir ; echo hola: estoy en `pwd` ; sleep 4 ; ls, etc, etc"

Etiquetas: funcion, shell
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:02.