Básicamente, lo que necesita de LFTP para descargar un directorio remoto es la utilidad de espejo. La acción de espejo incorporada de LFTP puede descargar o actualizar un árbol de directorios completo. También hay un espejo inverso (espejo -R) que carga o actualiza un árbol de directorios en el servidor. Mirror también puede sincronizar directorios entre dos servidores remotos, usando FXP si está disponible.
En este ejemplo, escribiremos un script lftp que es ejecutado por la utilidad lftp. Esto se hace básicamente para poder establecer propiedades personalizadas de lftp en línea en nuestro script usando la opción set. Comience creando el download_example.lftp
archivo y, de acuerdo con su método de autenticación con su servidor, agregue el siguiente contenido al archivo:
A. Con nombre de usuario y contraseña
Si utiliza un nombre de usuario y una contraseña de texto sin formato para acceder a su servidor a través de SFTP, esta es la forma de proceder. En la instrucción abierta, proporcione la cadena de autenticación que especifica el protocolo, el nombre de usuario para iniciar sesión que suele ser root y la contraseña seguida de la dirección IP o dominio de su servidor:
set ssl:verify-certificate no
set sftp:auto-confirm yes
open sftp://username:[email protected]
mirror --verbose --use-pget-n=8 -c --verbose /remote/directory/that-you-want-to-download /local/directory/to-save;
bye
B. Con una clave SSH
Si, en lugar de la autenticación básica para acceder a su servidor, utiliza claves SSH, deberá utilizar la clave OpenSSH para acceder. Simplemente cambie el programa de conexión utilizado por LFTP a SSH con los argumentos necesarios y especificando el archivo de identidad con el argumento -i
:
set ssl:verify-certificate no
set sftp:auto-confirm yes
set sftp:connect-program "ssh -v -a -x -i C:\Users\<username>\.ssh\id_rsa"
open sftp://username:[email protected]
mirror --verbose --use-pget-n=8 -c --verbose /remote/directory/that-you-want-to-download /local/directory/to-save;
bye
Las opciones de pget obtienen el archivo (o directorio) especificado usando varias conexiones. Esto puede acelerar la transferencia, pero carga la red y el servidor impactando fuertemente a otros usuarios. Úselo solo si realmente tiene que transferir el archivo lo antes posible; de ââlo contrario, elimínelo del ejemplo. El argumento --use-pget-n
especifica el número de comandos pget utilizados para transferir cada archivo en espejo. Un cierre se puede comparar con los nombres de host de origen o destino, se utiliza el número mínimo mayor que 0. Cuando el valor es menor que 2, pget no se usa.
Después de guardar el script, ejecútelo con lftp usando el siguiente comando:
lftp -f download_example.lftp
Esto iniciará automáticamente la descarga del directorio y generará el progreso gracias al argumento --verbose
, que proporciona una salida detallada sobre el progreso de la tarea:
Cuando finalice el script, ahora tendrá localmente el directorio remoto en su sistema local gracias a LFTP.
Que te diviertas ❤️!
Conviertete en un programador más sociable