¿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.