¿Cómo copio una carpeta de remota a local usando scp?
¿ Cómo copio una carpeta del host remoto al local usando scp
?
Yo suelo ssh
iniciar sesión en mi servidor.
Luego, me gustaría copiar la carpeta remota foo
a local /home/user/Desktop
.
¿Cómo logro esto?
scp -r [email protected]:/path/to/foo /home/user/Desktop/
Al no incluir el '/' final al final de foo, copiará el directorio en sí (incluido el contenido), en lugar de solo el contenido del directorio.
Desde man scp
(Ver manual en línea )
-r Copia recursivamente directorios completos
Para utilizar toda la potencia de scp, debe seguir los siguientes pasos:
- Autorización de clave pública
- Crear alias SSH
Entonces, por ejemplo, si tienes esto ~/.ssh/config :
Host test
User testuser
HostName test-site.example
Port 22022
Host prod
User produser
HostName production-site.example
Port 22022
se salvará de la entrada de contraseña y simplificará 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)
Para habilitar la finalización de bash remota, necesita tener bash-shell en ambos <source>
hosts <target>
y que la finalización de bash funcione correctamente. Para obtener más información, consulte las preguntas relacionadas:
¿Cómo habilitar el autocompletado para rutas remotas cuando se usa scp?
Completar la pestaña del nombre del archivo SCP
Para copiar todo desde la ubicación local a la ubicación remota (cargar)
scp -r /path/from/local username@hostname:/path/to/remote
Para copiar todo desde la ubicación remota a la ubicación local (descargar)
scp -r username@hostname:/path/from/remote /path/to/local
Puerto personalizado donde xxxx
está el número de puerto personalizado
scp -r -P xxxx username@hostname:/path/from/remote /path/to/local
Copiar en el directorio actual de Remoto a Local
scp -r username@hostname:/path/from/remote .
Ayuda:
-r
Copie recursivamente todos los directorios y archivos.- Utilice siempre la ubicación completa desde
/
, obtenga la ubicación/ruta completa mediantepwd
scp
reemplazará todos los archivos existenteshostname
será el nombre de host o la dirección IP- si se necesita un puerto personalizado (además del puerto 22), utilice
-P PortNumber
- . (punto) : significa directorio de trabajo actual, así que descargue/copie desde el servidor y péguelo aquí únicamente.
Nota: A veces, el puerto personalizado no funcionará debido a que el puerto no está permitido en el firewall, así que asegúrese de que el puerto personalizado esté permitido en el firewall para conexiones entrantes y salientes.
Lo que uso siempre es:
scp -r username@IP:/path/to/server/source/folder/ .
. (punto) : significa current folder
. así que copie del servidor y péguelo aquí solamente.
IP : puede ser una dirección IP 125.55.41.311
o puede ser un host ns1.mysite.example
.