¿Cómo copio una carpeta del host remoto al host local scp?
Yo uso sshpara iniciar sesión en mi servidor.
Entonces, me gustaría copiar la carpeta remota fooa local /home/user/Desktop.
¿Cómo logro esto?
¿Cómo copio una carpeta del host remoto al host local scp?
Yo uso sshpara iniciar sesión en mi servidor.
Entonces, me gustaría copiar la carpeta remota fooa 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
-Cbandera agrega compresión y la -cbandera 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/fooo tendrás Desktop/allcontentsofFooGoherescp? 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 fooin Desktopy todos los subdirectorios de foostrewn 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 xxxxestá 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 porpwdscp reemplazará todos los archivos existenteshostname será nombre de host o dirección IP-P portnumberNota: 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
pwdpara 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.311o 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
-Cbandera, 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/
arcfouren 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 scpcomando.
$ 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 sftpcomando simplemente escriba helpo ?.