Saltar al contenido

Transferir archivos usando lftp en bash script

Esta es la solución más correcta que te podemos aportar, pero obsérvala detenidamente y valora si se puede adaptar a tu trabajo.

Solución:

Manera simple con ftp:

#!/bin/bash

ftp -inv ip << EOF
user username password

cd /home/xxx/xxx/what/you/want/
put what_you_want_to_upload

bye
EOF

Con lftp:

#!/bin/bash

lftp -u username,password ip << EOF

cd /home/xxx/xxx/what/you/want/
put what_you_want_to_upload

bye
EOF

Del manual de lftp:

-u [,]  use the user/password for authentication

Puede usar mkdir para crear un directorio. Y puedes usar el comando put varias veces así:

put what_you_want_to_upload
put what_you_want_to_upload2
put what_you_want_to_upload3

Y puedes cerrar la conexión con bye


Puede verificar si la carpeta existe o no así:

#!/bin/bash
checkfolder=$(lftp -c "open -u user,pass ip; ls /home/test1/test1231")

if [ "$checkfolder" == "" ];
then
echo "folder does not exist"
else
echo "folder exist"
fi

Del manual de lftp:

-c             execute the commands and exit

Y puede abrir otra conexión para poner algunos archivos.


No sé cómo verificar si la carpeta existe o no con una conexión, pero puedo hacerlo así. Tal vez puedas encontrar una mejor solución:

#!/bin/bash
checkfolder=$(lftp -c "open -u user,pass ip; ls /home/test1/test2")

if [ "$checkfolder" == "" ];
then

lftp -u user,pass ip << EOF

mkdir test2
cd test2
put testfile.txt
bye
EOF

else

echo "The directory already exists - exiting"

fi

Te mostramos reseñas y puntuaciones

Finalizando este artículo puedes encontrar las referencias de otros programadores, tú asimismo eres capaz insertar el tuyo si te gusta.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *