Estoy tratando de ftp una carpeta usando la línea de comando ftp client, pero hasta ahora solo he podido usar 'get' para obtener archivos individuales.
Estoy tratando de ftp una carpeta usando la línea de comando ftp client, pero hasta ahora solo he podido usar 'get' para obtener archivos individuales.
Respuestas:
Puede confiar en wget, que generalmente maneja ftp get correctamente (al menos en mi propia experiencia). Por ejemplo:
wget -r ftp://user:pass@server.com/
También puede usar el -mque sea adecuado para duplicar. Actualmente es equivalente a -r -N -l inf.
Si tiene algunos caracteres especiales en los detalles de la credencial, puede especificar los argumentos --usery --passwordpara que funcione. Ejemplo con inicio de sesión personalizado con caracteres específicos:
wget -r --user="user@login" --password="Pa$$wo|^D" ftp://server.com/
EDITAR
Como lo señaló @asmaier, tenga cuidado de que incluso si -res por recursividad, tiene un nivel máximo predeterminado 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 no quieres perderte las subdirecciones, mejor usa 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.
wget -m( --mirror). wget -restá limitado a una profundidad de recursión de 5 por defecto.
--usery --passwordtambién en Red Hat. Mi wget es: GNU Wget 1.11.4 Red Hat modifiedme pregunto si es una cosa de versión o de distro ...
-l 0, por lo que no hay necesidad de usar --mirrorque puede tener algunos efectos secundarios no deseados, tales como archivos .listing
wget --ask-password -rl 99 ftp://user@server.com. De esta forma, la contraseña no es visible psy no permanece en el historial. Por supuesto, por la naturaleza de ftp, se envía sin cifrar al servidor.
$), por ejemplo--user='user' --password='pa$$word'
Solo para complementar la respuesta dada por Thibaut Barrère.
solía
wget -r -nH --cut-dirs=5 -nc ftp://user:pass@server//absolute/path/to/directory
Tenga en cuenta la doble barra después del nombre del servidor. Si no coloca una barra inclinada adicional, la ruta es relativa al directorio de inicio del usuario.
-nH evita la creación de un directorio con el nombre del servidor-nc evita crear un nuevo archivo si ya existe en el destino (solo se omite) --cut-dirs=5permite tomar el contenido del directorio / absolute / path / to / y colocarlo en el directorio donde inicia wget. El número 5 se usa para filtrar los 5 componentes de la ruta. La doble barra significa un componente adicional.--ftp-user=USERy --ask-password.
ncftp -u <user> -p <pass> <server>
ncftp> mget directory
open ftp://USERNAME:PASSWORD@HOSTdespués de comenzar ncftp ...
wget, y más rápido también en modo TAR. ¡Gracias!
Si lftpestá instalado en su máquina, use mirror dir. Y ya terminaste. Vea el comentario de Ciro a continuación si desea descargar recursivamente un directorio.
mirror -R dircarga / actualización recursiva de directorios
mirror ./para descargar todos los archivos y carpetas de forma recursiva en la ruta actual.
mirror, para el directorio actual y sus subcarpetas.
Si puede usar en scplugar de ftp, la -ropción lo hará por usted. Verificaría si puede usar un mecanismo de transferencia de archivos más moderno que FTP.
scpaún intentará usar ssh, que no funcionará si solo tiene credenciales FTP. Se siente raro responder a un comentario de 2008 diciendo que la tecnología que estoy atascado con moderna no es :( bueno de 2008, que cumplió 18 años el día que envió su comentario.
Use 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 su instalación en Linux. Esto funciona en el protocolo FTP y se puede usar para descargar archivos y carpetas de forma recursiva. Funciona en Linux. Se ha utilizado y funciona bien para la transferencia recursiva de carpetas / archivos.
Consulte este enlace ... http://www.ncftp.com/
Si puede, le sugiero encarecidamente tary bzip(o gziplo que sea que flote su barco) el directorio en la máquina remota: para un directorio de cualquier tamaño significativo, el ahorro de ancho de banda probablemente valdrá la pena el tiempo para comprimir / descomprimir.
No deberías usar ftp. Al igual telnetque no está utilizando protocolos seguros, y las contraseñas se transmiten en texto claro. Esto hace que sea muy fácil para terceros capturar su nombre de usuario y contraseña.
Para copiar directorios remotos de forma remota, estas opciones son mejores:
rsynces la herramienta más adecuada si puede iniciar sesión a través de ssh, ya que solo copia las diferencias y puede reiniciarse fácilmente en el medio en caso de que se rompa la conexión.
ssh -r es la segunda mejor opción para copiar recursivamente estructuras de directorios.
Ver:
alternar la solicitud mediante el comando PROMPT.
Uso:
ftp>cd /to/directory
ftp>prompt
ftp>mget *
mget, no es recursivo en absoluto. la respuesta del 22 de septiembre de 08 a las 9:01 Thibaut Barrère es más fácil de entender pero debe agregar la opción-l 0como se menciona en los comentarios