Como copiar um arquivo de um servidor remoto para uma máquina local?


238

No shell do meu terminal, transferi-me para um servidor remoto e cdno diretório que desejo.

Agora, neste diretório, existe um arquivo chamado tableque eu quero copiar para a minha máquina local /home/me/Desktop.

Como posso fazer isso?

Eu tentei, scp table /home/me/Desktopmas deu um erro sobre esse arquivo ou diretório.

Alguém sabe como fazer isso?


Se você se copia frequentemente com o scp, pode montar o diretório remoto no navegador de arquivos e arrastar e soltar. No meu host Ubuntu 15, está sob a barra de menus "Ir"> "Inserir local"> debian@10.42.4.66:/home/debian. Como alternativa, pode-se usar sshfspara montar o sistema de arquivos da máquina remota no host. Mas essa configuração está um pouco mais envolvida.
ConvexMartian #

rsyncuma chance. É ótimo tanto para cópias locais e remotas, dá-lhe copiar o progresso, etc. Um exemplo
sakisk

Respostas:


381

A sintaxe para scpé:

Se você estiver no computador a partir do qual deseja enviar o arquivo para um computador remoto:

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

Aqui, remotepode ser um FQDN ou um endereço IP.

Por outro lado, se você estiver no computador que deseja receber arquivos de um computador remoto:

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

scp também pode enviar arquivos entre dois hosts remotos:

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

Portanto, a sintaxe básica é:

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

Você pode ler man scppara obter mais idéias sobre isso.


4
E se eu quiser copiar vários arquivos? Adicionei um espaço e apenas usei outro /file/to/sendObrigado pela sua resposta incrível!
Camdixon

6
scp -rirá copiar recursivamente.
Henry

O que eu quero copiar os arquivos de rede para minha VM ... como conseguir o mesmo usando scp
Sushivam

2
@heemayl +1 pela boa resposta. Pensou em acrescentar que, no caso de ser uma conexão segura (que requer autenticação), você pode usar o seguinte (para copiar arquivo do local para o remoto): scp -i mykey.pem somefile.txt root@remotehost.ip.address : / some / folder / in / remote
Guy Avraham

1
Use scp -P 123para especificar porta personalizada
aexl

14

Você pode usar rsynccomo uma alternativa. É principalmente para sincronizar arquivos .. mas você pode usá-lo para esse fim também.

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

para adicionar opções ssh:

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

--progresse --statssão úteis para exibição em tempo real da transferência.


12
scp root@10.240.179.4:/root/Jmeter/reports.jtl Downloads/

4
Eu gosto desse tipo de resposta.
xtluo

8
scp username@ipaddress:pathtofile localsystempath

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

Se você estiver usando com porta:

scp -Pportnumber username@ipaddress:pathtofile localsystempath 

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

Isso copiará o arquivo para o mesmo diretório remoto.
precisa

3

Se você confia completamente todos na rede e você pode conectar uma porta da máquina de destino diretamente, você pode usar netcat: nc.

Digamos que o endereço IP da máquina de destino seja 192.168.1.123

Na execução de destino:

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

Você pode escolher uma porta diferente e também vincular a outro IP de suas interfaces, 0.0.0.0 apenas captura todas as interfaces.

Na execução de origem:

tar zxcf - filename | nc 192.168.1.123 7777

IMHO, esta é a maneira mais rápida possível de enviar um arquivo de um computador para outro usando redes digitais.

Os argumentos e as opções da linha de comando podem mudar um pouco entre as diferentes versões do nce tar, mas definitivamente funcionarão com distribuições recentes do Linux.


2

No Linux, para copiar uma pasta e seu conteúdo do diretório user (root neste exemplo) para uma pasta no diretório local do usuário, eu executo este comando na máquina local:

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

Observe o ~ / que muitas vezes pareço esquecer ...

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.