¿Cómo copiar un archivo de un servidor remoto a una máquina local?


238

En mi terminal, ingresé en un servidor remoto y fui cdal directorio que quería.

Ahora en este directorio, hay un archivo llamado tableque quiero copiar en mi máquina local /home/me/Desktop.

¿Cómo puedo hacer esto?

Lo intenté scp table /home/me/Desktoppero me dio un error acerca de que no hay tal archivo o directorio.

¿Alguien sabe como hacer esto?


Si te encuentras copiando con scp con frecuencia, puedes montar el directorio remoto en tu navegador de archivos y arrastrar y soltar. En mi host Ubuntu 15, está debajo de la barra de menú "Ir"> "Introducir ubicación"> debian@10.42.4.66:/home/debian. Alternativamente, se puede usar sshfspara montar el sistema de archivos de la máquina remota en el host. Pero esa configuración es un poco más complicada.
ConvexMartian

Darle rsyncuna oportunidad. Es excelente tanto para copias locales como remotas, le brinda progreso de copia, etc. Un ejemplo
sakisk

Respuestas:


383

La sintaxis para scpes:

Si está en la computadora desde la que desea enviar el archivo a una computadora remota:

scp /file/to/send username@remote:/where/to/put

Aquí remotepuede ser un FQDN o una dirección IP.

Por otro lado, si está en la computadora que desea recibir archivos de una computadora remota:

scp username@remote:/file/to/send /where/to/put

scp También puede enviar archivos entre dos hosts remotos:

scp username@remote_1:/file/to/send username@remote_2:/where/to/put

Entonces la sintaxis básica es:

scp username@source:/location/to/file username@destination:/where/to/put

Puedes leer man scppara obtener más ideas sobre esto.


44
¿Qué pasa si quiero copiar múltiples archivos? Agregué un espacio y acabo de usar otro ¡ /file/to/sendGracias por su increíble respuesta!
camdixon

66
scp -rcopiará recursivamente.
Henry

Lo que quiero copiar los archivos de la red a mi VM ... cómo lograr lo mismo usando scp
Sushivam

2
@heemayl +1 por la buena respuesta. Se pensó agregar que en el caso de que sea una conexión segura (que requiere una autenticación) puede usar lo siguiente (para copiar archivos de local a remoto): scp -i mykey.pem somefile.txt root@remotehost.ip.address : / some / folder / in / remote
Guy Avraham

1
Use scp -P 123para especificar un puerto personalizado
aexl

14

Puedes usar rsynccomo alternativa. Es principalmente para sincronizar archivos ... pero también puede usarlo para este propósito.

rsync -avzh --stats --progress remoteuser@remoteip  localpath 

para agregar opciones ssh:

rsync -e "ssh -P $port_value" remoteuser@remoteip  localpath

--progressy --statsson útiles para la visualización en tiempo real de la transferencia.



8
scp username@ipaddress:pathtofile localsystempath

scp sadananad@ipaddress:/home/demo/public_html/myproject.tar.gz .

Si está usando con el puerto:

scp -Pportnumber username@ipaddress:pathtofile localsystempath 

scp -P2233 sadananad@ipaddress:/home/demo/public_html/myproject.tar.gz .

Esto copiará el archivo al mismo directorio remoto.
Max Yudin

3

Si confía por completo todos los miembros de la red y se puede conectar un puerto de la máquina de destino directamente, puede utilizar netcat: nc.

Digamos que la dirección IP de la máquina de destino es 192.168.1.123

En el destino ejecutado:

nc -l -p 7777 0.0.0.0 | tar zxvf - -C dest_dir

Puede elegir un puerto diferente y también enlazar a otra IP de sus interfaces, 0.0.0.0 solo se captura en todas las interfaces.

En la fuente de ejecución:

tar zxcf - filename | nc 192.168.1.123 7777

En mi humilde opinión, esta es la forma más rápida posible de enviar un archivo de una computadora a otra mediante redes digitales.

Los argumentos y las opciones de la línea de comandos pueden cambiar ligeramente entre las diferentes versiones de ncy tar, pero definitivamente funcionará con las distribuciones recientes de Linux.


2

En Linux, para copiar una carpeta y su contenido del directorio del usuario (raíz en este ejemplo), a una carpeta en el directorio del usuario local, ejecuto este comando en la máquina local:

scp -r root@178.62.54.83: ~ / folderinremoteuserdir ~ / folderinlocaluserdir

Tenga en cuenta el ~ / que a menudo parece olvidar ...

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.