Programar FTP en un shell

Quiero hacer un script en el cual me transfiera unos archivos con FTP, pero la forma qn la que lo estoy haciendo es: ftp 100.1.1.1 < archivo_entrada.
O sea le tengo que dar un archivo de entrada con las instrucciones del ftp.
¿Quiero saber si hay algún modo de ponérselas en el mismo script sin tener que darle al ftp un archivo de entrada?

1 respuesta

Respuesta
1
Hay una forma mediante scripts de traerte ficheros.
Para ello debes tener en tu $HOME un fichero especial llamado .netrc cuyo contenido es:
machine <tu_maquina> login <usuario> password <password>
Macdef sendascii
Ascii
put $1 $2
Quit
Macdef sendbin
bin
put $1 $2
Quit
Macdef getascii
Ascii
get $1 $2
Quit
Macdef mgetascii
Ascii
mget $1 $2
quit
macdef cd_mgetascii
cd '$1'
ascii
mget $2
quit
macdef getbin
bin
get $1 $2
quit
macdef cd_getbinhost
cd '$1'
bin
get $2
quit
macdef genera_lista
cd '$1'
Ls
Quit
Fíjate que cada párrafo es como una macro. Este ejemplo es bastante completo pues hay transferencias ascii/binaria de uno o varios ficheros y además te permite cambiarte a un directorio remoto y traerte/llevarte ficheros.
COn este fichero en tu $HOME, un script para traer ficheros sería:
cat > $$ << EOF
Fich1
Fich2
Fich3
EOF
mkdir ficheros
cd ficheros
while read a
do
echo "$cd_mgetascii /usr/usuario/a_traer $a" | ftp -i <tu_maquina>
done < ../$$
echo "Acabado ftp"
cd ..
rm $$
Este ejemplo, de la máquina remota <tu_maquina> cuyo usuario y password está en .netrc (primera línea), va al subdirectorio /usr/usuario/a_traer y trae los ficheros fich1, fich2 y fich3en tu máquina local bajo el subdirectorio ficheros/.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas