Pregunta ¿Cómo obtengo un directorio completo en sftp?


Estoy aprendiendo a usar sftp y quiero copiar un directorio de la computadora remota a mi computadora local. Si intento

get [directory]

me da este error:

Cannot download non-regular file: /home/mpirocch/Documents

get -R tampoco funciona.


159


origen


Recursive put / get se agregó a OpenSSH en 5.4, que se lanzó en 2010. Puede considerar actualizar sus servidores, ya que también agrega una gran cantidad de correcciones de errores y mejores características de seguridad. - Lèse majesté


Respuestas:


Utilizar el -r (recursivo) bandera:

get -r *

231



Gracias por poner una respuesta que realmente responde la pregunta. - jonnyflash
Me da: get: Invalid flag -r - ghbarratt
Esto también me da una bandera inválida. No estoy seguro de que esto sea compatible con todos los sistemas. - Ben
@Ben: cuando hice esta pregunta en 2009, la -r la bandera no existía ¿Tu sistema está actualizado? - Matthew
@silvinci no todas sistemas actuales Opción ilegal con CentOS 6.4 openssh-clients-5.3p1-84.1.el6.x86_64 - CrackerJack9


Utilizar:

scp -r mpirocch@my-server:/home/mpirocch/Documents Documents

51



Esto funciona, pero sería bueno poder hacer esto desde SFTP (para que pueda ver lo que copio antes de copiarlo). es posible? - Matthew
@Matthew: No lo creo. Me he estado haciendo la misma pregunta por un tiempo y la mejor respuesta que tengo por el momento es scp -r. O podría usar un cliente SFTP avanzado como Filezilla. - Cristian Ciupitu
scp -r seguirá los enlaces simbólicos ... - jsleuth
Algunos sistemas pueden permitir sftp, pero no scp acceso. - Turion


Utilizar lftp:

lftp sftp://user@host

Luego usa el mirror comando para subir de forma recursiva, así:

mirror -R

O para subir solo:

mirror

Tienes que cd en los directorios que deseas reflejar. ¡Funciona mágicamente!


36



¡+1 lftp es como un pequeño fajo de magia y alegría! - WCWedin


No use el programa sftp directamente si puede encontrar algo mejor. Para Linux, muchos administradores de archivos (al menos Nautilus y Dolphin, los de GNOME y KDE) soportan sftp nativamente, y siempre hay sshfs. Para Windows, hay WinSCP, y probablemente otros. El objetivo de todo esto es permitirle acceder a los archivos a través de sftp como si estuvieran en un sistema de archivos normal, por lo que no tiene que preocuparse de que esté accediendo a ellos a través de sftp.


15



Wow, nautilus funciona muy bien con SFTP. Agregué un marcador en Nautilus, y ahora todo es ridículamente fácil. ¡Gracias! - Matthew
He tenido problemas de rendimiento con Nautilus SFTP. Sí, es muy conveniente, pero no pude saturar una red de 1 Gbit a través de Nautilus, mientras que con sftp/ssh interfaz de línea de comandos que estaba (cca 100 MB / s transferencias de archivos). Entonces, el problema era Nautilus en GNU / Linux Mint. - stamster


bien esta pequeña guía debería ayudar, duplicar un servidor remoto a la carpeta local con lftp

lftp sftp://user:password@server.org:22 -e 'mirror --verbose --use-pget-n=8 -c /remote/path /local/path'

  • sftp:// = usa el protocolo SFTP
  • mirror = modo espejo
  • verbose = muestra los archivos que se están descargando
  • use-pget-n = número de segmentos, realmente útil para acelerar archivos grandes
  • parallel = descarga archivos multiplicadores al mismo tiempo

si desea descargar archivos en paralelo, cambie de use-pget-n=8 con --parallel=8 

Espero que esto ayude a cualquiera que necesite duplicar una carpeta remota a una carpeta local


13



Gracias, esto funcionó para mí, después de que los otros métodos fallaron (en particular, no la opción "-r" en sftp). La primera parte del comando en mi caso necesitaba ser citada, debido a los caracteres en dólares en la contraseña lftp 'sftp://user:pa$$word@server.org:22' -e 'mirror --verbose --use-pget-n=8 -c /remote/path /local/path' - Jason


Tratar mget en lugar de get.

Aclaración: mget  será trabaje si se encuentra dentro del directorio que desea copiar; si haces algo como esto:

sftp> cd dir_to_get
sftp> mget *

obtendrá todos los archivos en ese directorio. Sin embargo, no obtendrá recursivamente el contenido de ningún subdirectorio.


12



mget no funciona mejor que conseguir para mí. - Matthew
obteniendo No se puede descargar un archivo no regular con esto - Dchris
Esto funcionó para mí en un sistema donde 'get-r' no funcionaba. - Tchotchke


get -r [directory]

se pone [directory] y todo debajo de ella, donde r significa recursivo Encontré esto simplemente escribiendo help de sftp.


9



OMI esta es la mejor respuesta a esta pregunta. :) - ramrunner
Este es un duplicado de un responder de 29 de noviembre de 2010 (hace casi un año y medio). - Cristian Ciupitu


Al igual que con cp:

scp -rp user@host:/path/to/dir dir

Lo anterior conservará los tiempos y modos de los archivos y subdirectorios originales. Esto es especialmente útil para la recuperación de copias de seguridad.


4



Esto es básicamente un duplicado de un responder de 29 de noviembre de 2010 (hace casi dos años). - Cristian Ciupitu


Tengo la carpeta de distribución Java en el servidor remoto, donde tengo el siguiente árbol:

- dist
--- Audio.jar
--- README
--- lib
----- lib.jar

El objetivo es: ¿quiero usar SFTP? Y ponerlos en / tmp / <>

Paso 1. sftp remoteuser @ ip

Paso 2. cd / var / tmp

Paso 2. lmkdir / tmp / dist; lmkdir / tmp / dist / lib

Paso 3. lcd / tmp / dist

Paso 4. mget *

Paso 5. lcd / tmp / dist / lib

Paso 6. mget *

Paso 7. finalmente tengo mi objetivo

$ ls
Audio.jar  lib  README.TXT

0