transferir servidores por entre copiar consola comando archivos shell command-line copy scp

shell - servidores - ¿Cómo copiar una carpeta de remoto a local usando scp?



transferir archivos de windows a linux ssh (11)

En caso de que encuentre "Demasiados fallos de autenticación" , especifique la clave SSH exacta que ha agregado a su servidor ssh de servidores:

scp -r -i /path/to/local/key [email protected]:/path/to/folder /your/local/target/dir

¿Cómo copiar una carpeta del host remoto al local usando scp ?

Yo uso ssh para iniciar sesión en mi servidor.
Luego, me gustaría copiar la carpeta remota foo a local /home/user/Desktop .

¿Cómo lograr esto?


Escenario típico,

scp -r -P port username@ip:/path-to-folder .

explicado con una muestra,

scp -r -P 27000 [email protected]:/tmp/hotel_dump .

dónde,

port = 27000 username = "abc" , remote server username path-to-folder = tmp/hotel_dump . = current local directory


Ir a Archivos en la barra de herramientas de tu unidad

Presione Ctrl + l y escriba [email protected]

El 192.168.1.103 es el host que desea conectar.

El aquí un ejemplo


La pregunta era cómo copiar una carpeta de remoto a local con el comando scp .

$ scp -r userRemote@remoteIp:/path/remoteDir /path/localDir

Pero aquí está la mejor manera de hacerlo con sftp : el Protocolo de transferencia de archivos SSH (también Protocolo seguro de transferencia de archivos o SFTP) es un protocolo de red que proporciona acceso a archivos, transferencia de archivos y administración de archivos a través de cualquier flujo de datos confiable. (Wikipedia) .

$ sftp user_remote@remote_ip

sftp> cd /path/to/remoteDir

sftp> get -r remoteDir

Fetching /path/to/remoteDir to localDir 100% 398 0.4KB/s 00:00

Para obtener ayuda sobre el comando sftp simplemente escriba help o ? .


Lo que siempre uso es:

scp -r username@IP:/path/to/server/source/folder/ .

. (punto) : significa current folder . así que copia desde el servidor y pega aquí solamente.

IP : puede ser una dirección IP como 125.55.41.311 o puede ser host como ns1.mysite.com .


Mejor comprimir primero el catálogo en el servidor remoto:

tar czfP backup.tar.gz /path/to/catalog

En segundo lugar, descargar desde el mando a distancia:

scp [email protected]:/path/to/backup.tar.gz .

Al final, extrae los archivos:

tar -xzvf backup.tar.gz


No sé por qué, pero tuve que usar una carpeta local antes de la directiva del servidor de origen. para que funcione

scp -r . [email protected]:/usr/share/nginx/www/example.org


Para copiar todo desde la ubicación local a la ubicación remota (carga)

scp -r /path/from/destination username@hostname:/path/to/destination

Para copiar todo desde la ubicación remota a la ubicación local (Descargar)

scp -r username@hostname:/path/from/destination /path/to/destination

Puerto personalizado donde xxxx es el número de puerto personalizado

scp -r -P xxxx username@hostname:/path/from/destination /path/to/destination

Copiar en el directorio actual de remoto a local

scp -r username@hostname:/path/from/file .

Ayuda:

  1. -r Copia recursivamente todos los directorios y archivos
  2. Usar siempre la ubicación completa desde / , Obtener ubicación completa por pwd
  3. scp reemplazará todos los archivos existentes
  4. hostname será el hostname host o la dirección IP
  5. si se necesita un puerto personalizado (además del puerto 22) use -P portnumber
  6. . (punto) : significa el directorio de trabajo actual, así que descargue / copie desde el servidor y pegue aquí solamente.

Nota: A veces, el puerto personalizado no funciona debido a que el puerto no está permitido en el firewall, por lo tanto, asegúrese de que el puerto personalizado esté permitido para la conexión entrante y saliente.


Para usar todo el poder de scp, debes seguir los siguientes pasos:

  1. Autorización de clave pública
  2. Crear alias ssh

Luego, por ejemplo, si tienes este ~ / .ssh / config :

Host test User testuser HostName test-site.com Port 22022 Host prod User produser HostName production-site.com Port 22022

te ahorrarás de la entrada de contraseña y simplificarás la sintaxis de scp de esta manera:

scp -r prod:/path/foo /home/user/Desktop # copy to local scp -r prod:/path/foo test:/tmp # copy from remote prod to remote test

Además, podrá utilizar la finalización de ruta remota:

scp test:/var/log/ # press tab twice Display all 151 possibilities? (y or n)

Actualizar:

Para habilitar la finalización de bash remota, debe tener bash-shell en los hosts <source> y <target> , y bash-completando correctamente. Para más información ver preguntas relacionadas:

¿Cómo habilitar el autocompletado para rutas remotas al usar scp?
Completar pestaña de nombre de archivo SCP


Y si tiene un infierno de archivos para descargar desde la ubicación remota y si no le importa mucho la seguridad, intente cambiar el cifrado predeterminado de scp (Triple-DES) a algo como ''blowfish''.

Esto reducirá drásticamente el tiempo de copia de archivos.

scp -c blowfish -r [email protected]:/path/to/foo /home/user/Desktop/