Cómo recursivamente descargar una carpeta a través de FTP en Linux [cerrado]
-
02-07-2019 - |
Pregunta
Estoy tratando de ftp una carpeta mediante la línea de comandos de cliente ftp, pero hasta ahora sólo he sido capaz de utilizar el 'get' para obtener los archivos individuales.
Solución
Usted puede confiar en wget que usualmente maneja ftp obtener correctamente (al menos en mi propia experiencia).Por ejemplo:
wget -r ftp://user:pass@server.com/
También puede utilizar -m
que es adecuado para la creación de reflejo.Actualmente es equivalente a -r -N -l inf
.
Si has algunos caracteres especiales en la credencial detalles, puede especificar el --user
y --password
los argumentos para llegar a trabajar.Ejemplo de inicio de sesión personalizado con caracteres específicos:
wget -r --user="user@login" --password="Pa$$wo|^D" ftp://server.com/
EDITAR
Como se ha señalado por @asmaier, ver que, incluso si -r
es la recursión, tiene un valor máximo de nivel de 5:
-r --recursive Turn on recursive retrieving. -l depth --level=depth Specify recursion maximum depth level depth. The default maximum depth is 5.
Si usted no quiere perder la subdirectorios, un mejor uso de la opción de duplicación, -m
:
-m --mirror Turn on options suitable for mirroring. This option turns on recursion and time-stamping, sets infinite recursion depth and keeps FTP directory listings. It is currently equivalent to -r -N -l inf --no-remove-listing.
Otros consejos
Sólo para complementar la respuesta dada por Thibaut Barrère.
He utilizado
wget -r -nH --cut-dirs=5 -nc ftp://user:pass@server//absolute/path/to/directory
Nota de la doble barra después del nombre del servidor.Si no pongo un extra de barra diagonal de la ruta es relativa al directorio home del usuario.
- -nH, evita la creación de un directorio nombrado después de que el nombre del servidor
- -nc evita la creación de un nuevo archivo si ya existe en el destino (que se acaba de saltar)
- --cut-dirs=5 me permite tomar el contenido de /absoluta/ruta/al/directorio y ponerlo en el directorio donde puedo iniciar wget.El número 5 se utiliza para filtrar los 5 componentes de la ruta de acceso.La doble barra significa un componente adicional.
ncftp -u <user> -p <pass> <server>
ncftp> mget directory
Si lftp
está instalado en su máquina, el uso de mirror dir
.Y listo.Ver el comentario por Ciro a continuación si desea recursivamente descargar un directorio.
Si usted puede utilizar scp
en lugar de ftp
, el -r
opción va a hacer esto para usted.Me gustaría comprobar para ver si usted puede utilizar un sistema más moderno mecanismo de transferencia de archivos de FTP.
El uso de WGet en su lugar.Es compatible con los protocolos HTTP y FTP.
wget -r ftp://mydomain.com/mystuff
Buena Suerte!
referencia: http://linux.about.com/od/commands/l/blcmdl1_wget.htm
Hay 'ncftp', que está disponible para la instalación en linux.Esto funciona sobre el protocolo FTP y puede ser utilizado para descargar archivos y carpetas de forma recursiva.funciona en linux.Ha sido utilizado y está trabajando muy bien para recursiva de carpeta/archivo de transferencia.
Revise este enlace... http://www.ncftp.com/
Si se puede, yo sugiero que usted tar
y bzip
(o gzip
, lo que flota su barco) en el directorio en el equipo remoto—para un directorio de cualquier tamaño significativo, el ahorro de ancho de banda será probablemente vale la pena el tiempo para zip/unzip.
Si usted quiere meter a FTP de línea de comandos, usted debe tratar de NcFTP.A continuación, puede utilizar get-R de forma recursiva obtener una carpeta.Usted también tendrá la finalización.
wget -r ftp://url
Funcionan perfectamente para Redhat y Ubuntu
Usted no debe usar ftp
.Como telnet
no es el uso de protocolos seguros, y las contraseñas se transmiten en texto claro.Esto hace que sea muy fácil de terceros para capturar su nombre de usuario y contraseña.
Para copiar remoto directorios de forma remota, estas opciones son mejores:
rsync
es el que mejor se adaptan herramienta si usted puede iniciar sesión a través dessh
, porque sólo copias de las diferencias, y fácilmente se puede reiniciar en el centro en caso de que la conexión se rompe.ssh -r
es la segunda mejor opción de forma recursiva del directorio de copia de estructuras.
Ver:
alternar los comandos de línea de comandos.
Uso:
ftp>cd /to/directory
ftp>prompt
ftp>mget *