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.

¿Fue útil?

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 de ssh, 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:

  • rsync el hombre de la página

  • ssh el hombre de la página

alternar los comandos de línea de comandos.

Uso:

ftp>cd /to/directory    
ftp>prompt    
ftp>mget  *
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top