Re: bash EOF
El 7/07/07, manuelsspace-listas@yahoo.com
<manuelsspace-listas@yahoo.com> escribió:
----- Original Message ----
From: Manolet Gmail <manolet@gmail.com>
To: Lista Debian-Español <debian-user-spanish@lists.debian.org>
Sent: Saturday, July 7, 2007 8:38:09 PM
Subject: bash EOF
hola! ya es mi 3 mensaje hoy.... creo que es el ultimo para lograr lo
que quiero, en realidad les agredesco mucho...
veran, tengo un script en bash que sube un archivo por ftp.. quisiera
saber si existe alguna forma de saber si el archivo si subio o no, el
comando ftp crea un log? puedo explorar las respuestas del sistema
luego del EoS ?... alguna idea?
echo "subiendo $F :"
ftp -nd <<End-of-Session
open "$SERVER"
user "$USERNAME" "$PASSWORD"
prompt
cd "$REMOTEDIR"
lcd "$LOCALDIR"
put "$F" "$F"
bye
End-of-Session
shift
echo "fichero subido con exito"
--
Que tal Manolet
Lo primero que puedes hacer es verificar si el ftp dio un mensaje con nivel 5xx
ftp -nd >salida 2>&1 <<End-of-Session
..
grep ^5[0-9][0-9] salida
hola, hice las pruebas colocando un ftp falso al que no se puede
conectar. El archivo salida queda de la siguiente manera:
ftp: connect: Connection refused
Not connected.
Interactive mode off.
Not connected.
Local directory now /home/manolo/abugaber/files
Not connected.
sin embargo con eso puedo usar grep para ver el error. Asi que hice esto:
if grep "Connection refused" salida > /dev/null ; then
echo -e "${rojo}${blanco}ERROR: ${NC}${blanco}No se puede conectar al
servidor ${NC}"
fi
no se si sea lo mas idoneo pero me funciona bien, aunque ahora
quisiera cambiar el if por un case, el problema es que no se como
hacerle, en vez de usar grep uso cat?, existe alguna forma de usar las
opciones del case bla)... ;; con expreciones regulares?.
~
Lo otro que puedes hacer es:
1.-Utilizar scp y verificar el resultado $?
2.-Utilizar lftp el cual te da un poco mas de valor
3.- Hacer un dir "$F" dentro del ftp y luego comparar los tamaños
4.- hacer ftp con un nombre temporal y luego renombrarlo con mv. Si funciona el mv terminó el put, eso lo sabras revisando la salida
5.- etc
Suerte
Manuel S
Reply to: