LFTP es un programa de transferencia de archivos y que nos permite realizar sofisticadas conexiones de varios tipos como ftp, ftps, http, https, hftp, fish, sftp y file. Para utilizar un método u otro, deberemos especificarlo al realizar la conexión.
Si utilizamos lftp junto con la orden mirror, podemos transferir todo el contenido de nuestro servidor, de una sola vez y con un único comando a local. O bien, podemos realizar el paso inverso, es decir, volcar el contenido completo de local al servidor de internet (con el modificador -R, como veremos).
Para acceder al servidor escribiremos en el terminal:
lftp ftp.midominio.com
A continuación los datos de acceso de ftp (escribimos user y el nombre de usuario y se nos solicitará la contraseña).
Finalmente escribiremos la orden mirror siguiendo el patrón:
mirror [OPCIONES] [origen [destino]]
Se pueden omitir las rutas y así se utilizarán las «por defecto». Además, la orden mirror cuenta con una serie de modificadores que nos permiten realizar multitud de operaciones:
-c –continue continua una tarea de transferencia, si es posible.
-e –delete elimina archivos no presentes en el sitio remoto
–delete-first elimina los archivos antiguos antes de transferir los nuevos
–depth-first desciende a los subdirectorios antes de transferir archivos
-s –allow-suid configura los bits suid/sgid de acuerdo con el sitio remoto
–allow-chown prueba de configurar propietario y grupo en los archivos
–ascii utilizar el modo ascii en la transferencia (implica –ignore-size)
–ignore-time ignora tiempo si se está bajando
–ignore-size ignora tamaño si se está bajando
–only-missing baja solo archivos extraviados
–only-exiting baja solo archivos existentes en el directorio destino
-n –only-newer baja solo nuevos archivos (no puede usarse con -c)
–no-empty-dirs no crea en destino directorios vacios ( implica –depth-first)
-r –no-recursion no va a los subdirectorios
–no-symlinks no crea enlaces simbólicos
-p –no-perms no configura los permisos de archivo
–no-umask no aplica umask
-R –reverse cambia mirror al modo “reverse mirror”: sube directorios
-L –dereference baja los enlaces simbólicos como archivos
-N –newer-than=SPEC baja solo archivos posteriores a la fecha(tiempo) especificada(o)(SPEC)
–on-change=CMD ejecuta el comando especificado (CMD), si algo ha cambiado
–older-than=SPEC baja solo archivos anteriores a la fecha(tiempo) especificada(o)(SPEC)
–size-range=RANGE baja solo archivos cuyo tamaño se encuentre en el rango especficado (RANGE)
-P –parallel[=N] baja N archivos en paralelo
–use-pget[-n=N] usar pget para transferir cada archivo individual
–loop loop hasta que no se encuentren cambios
-i RX –include RX incluir archivos que coincidan con la expresión regular (RX)
-x RX –exclude RX exluir archivos que coincidan con la expresión regular (RX)
-I GP –include-glob GP incluir archivos que coincidan con el patrón global (GP)
-X GP –exclude-glob GP excluir archivos que coincidan con el patrón global (GP)
-v –verbose[=level] operación en modo “verboso”
–log=FILE escribe los comandos lftp ejecutados en el archivo especificado (FILE)
–script=FILE escribe los comandos lftp en el archivo especificado (FILE), pero no ejecutarlos
–use-cache usar los listados del directorio cache
–Remove-source-files eliminar los archivos origen después de su transferencia (¡usar con precaución!)