¿Cómo copio una carpeta del host remoto al host local scp
?
Yo uso ssh
para iniciar sesión en mi servidor.
Entonces, me gustaría copiar la carpeta remota foo
a local /home/user/Desktop
.
¿Cómo logro esto?
¿Cómo copio una carpeta del host remoto al host local scp
?
Yo uso ssh
para iniciar sesión en mi servidor.
Entonces, me gustaría copiar la carpeta remota foo
a local /home/user/Desktop
.
¿Cómo logro esto?
Respuestas:
scp -r user@your.server.example.com:/path/to/foo /home/user/Desktop/
Al no incluir el '/' final al final de foo, moverá el directorio en sí (incluidos los contenidos), en lugar de solo los contenidos del directorio.
De man scp
(Ver manual en línea )
-r Copiar recursivamente directorios completos
-C
bandera agrega compresión y la -c
bandera te permite pasar otros tipos de cifrado para un mejor rendimiento, scp -c blowfish a@b:something .
como se ve en la respuesta de dimuthu
Desktop/foo
o tendrás Desktop/allcontentsofFooGohere
scp? Parece que a veces me parece extraño, hace una cosa y luego otra
scp -r user@your.server.example.com:/path/to/foo /home/user/Desktop/
contigo debería terminar con Desktop/foo
. With scp -r user@your.server.example.com:/path/to/foo/. /home/user/Desktop/
you terminará con el contenido de foo
in Desktop
y todos los subdirectorios de foo
strewn underDesktop
Para usar toda la potencia de scp , debe seguir los siguientes pasos:
Entonces, por ejemplo, si tiene este ~ / .ssh / config :
Host test
User testuser
HostName test-site.com
Port 22022
Host prod
User produser
HostName production-site.com
Port 22022
se ahorrará la entrada de contraseña y simplificará la sintaxis 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 ambos <source>
y en los <target>
hosts, y trabajar correctamente la finalización de bash. Para obtener más información, consulte las preguntas relacionadas:
¿Cómo habilitar el autocompletado para rutas remotas cuando se usa scp?
Finalización de la pestaña de nombre de archivo SCP
Para copiar todo desde la ubicación local a la ubicación remota (cargar)
scp -r /path/from/destination username@hostname:/path/to/destination
Para copiar todo desde la ubicación remota a local Ubicación (Descargar)
scp -r username@hostname:/path/from/destination /path/to/destination
Puerto personalizado donde xxxx
está 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
Copie recursivamente todos los directorios y archivos/
, Obtenga la ubicación completa porpwd
scp
reemplazará todos los archivos existenteshostname
será nombre de host o dirección IP-P portnumber
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 la conexión entrante y saliente
pwd
para obtener la ubicación y use la misma
Lo que siempre uso es:
scp -r username@IP:/path/to/server/source/folder/ .
. (punto) : significa current folder
. así que copie del servidor y péguelo aquí solo.
IP : puede ser una dirección IP 125.55.41.311
o puede ser un host como ns1.mysite.com
.
.
refiere al directorio actual!
Mejor comprimir primero el catálogo en el servidor remoto:
tar czfP backup.tar.gz /path/to/catalog
En segundo lugar, descargue desde el control remoto:
scp user@your.server.example.com:/path/to/backup.tar.gz .
Al final, extraiga los archivos:
tar -xzvf backup.tar.gz
-C
bandera, como scp -C a@b:bigfile .
.
Y si tiene una gran cantidad de archivos para descargar desde la ubicación remota y si no le importa mucho la seguridad, intente cambiar el cifrado predeterminado scp (Triple-DES) a algo como 'blowfish'.
Esto reducirá drásticamente el tiempo de copia de archivos.
scp -c blowfish -r user@your.server.example.com:/path/to/foo /home/user/Desktop/
arcfour
en lugar de blowfish
, pero tiene fallas de seguridad.
Escenario típico,
scp -r -P port username@ip:/path-to-folder .
explicado con una muestra,
scp -r -P 27000 abc@10.70.12.12:/tmp/hotel_dump .
dónde,
port = 27000
username = "abc" , remote server username
path-to-folder = tmp/hotel_dump
. = current local directory
La pregunta era cómo copiar una carpeta de remoto a local con scp
comando.
$ scp -r userRemote@remoteIp:/path/remoteDir /path/localDir
Pero esta es la mejor manera de hacerlo 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 sftp
comando simplemente escriba help
o ?
.