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:
-
-r
Copia recursivamente todos los directorios y archivos - Usar siempre la ubicación completa desde
/
, Obtener ubicación completa porpwd
-
scp
reemplazará todos los archivos existentes -
hostname
será elhostname
host o la dirección IP - si se necesita un puerto personalizado (además del puerto 22) use
-P portnumber
- . (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:
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/
scp -r [email protected]:/path/to/foo /home/user/Desktop/
Desde man scp
(ver manual en línea )
-r Copia recursivamente directorios enteros