Como copiar de um computador para outro computador com comandos shell do Linux?

3

Eu quero copiar um arquivo ( home/remote_computer_user/Desktop/test1.txt ) do meu computador do escritório remoto (uma URL permanente + porta aberta) para o meu computador de casa ( home/home_computer_user/Downloads/ ).

Como posso fazer isso com comandos shell no Linux?

Minhas ideias atuais:

  1. ssh <user>@<computer1address> -p <port> - me dá um shell no computador remoto
  2. (acho que devo usar scp , mas não sei como exatamente no meu caso)

Quais são os comandos exatos que devo usar?

    
por BenBen 23.06.2011 / 17:36

4 respostas

4

Deve ser algo como:

scp -P <port> user@comp1:Desktop/test1.txt ~/Downloads/

Execute isso no seu computador pessoal.

Espero que isso ajude você.

    
por 23.06.2011 / 17:43
1

scp funciona, mas você também pode usar rsync :

rsync -e 'ssh -p <port>' <user>@<computer1address>:Desktop/test1.txt ~/Downloads/

Na maioria das vezes, rsync é um substituto substituto de scp , ou seja, com a maioria dos comandos scp , basta substituir scp por rsync e ele funcionará da mesma maneira. A única razão que não é verdadeira para o seu caso é que rsync não tem a opção -p para especificar a porta (bem, isso acontece, mas só se aplica quando o rsync se conecta através de seu próprio protocolo nativo, não ssh). Então você precisa dizer para usar um comando ssh alternativo que inclua a porta.

Se o seu servidor ssh usa a porta padrão, ou se você tem a porta configurada em ~/.ssh/config (em ambos os casos, isso significa que você não precisa usar a opção -p ao conectar com o ssh), então você pode apenas correr

rsync <user>@<computer1address>:Desktop/test1.txt ~/Downloads/

Em geral, eu prefiro rsync to scp porque ele tem muito mais opções, e porque se você está transferindo um grande número de arquivos, o rsync tem o bom senso de pular aqueles que já existem no sistema de destino, reduzindo a quantidade de dados que devem ser transferidos.

    
por 10.10.2011 / 06:45
0

Se você tiver FTP ou SCP, use-o. É mais confortável. Se você está limitado a ssh (como eu estou em muitos sistemas embarcados)

Carregar arquivo único:

 ssh login@remotehost -p remoteport "cat >filename" <filename

Faça o download do arquivo único:

 ssh login@remotehost -p remoteport "cat filename" >filename

Carregar um diretório

 tar -cf - dirname | ssh login@remotehost -p remoteport "tar -xf -"

Faça o download de um diretório

 ssh login@remotehost -p remoteport "tar -cf - dirname" | tar -xf - 

Em vez de dirname , você pode especificar vários arquivos, diretórios ou um padrão para correspondência. Cuidado com os caminhos absolutos.

    
por 10.10.2011 / 14:54
0

Uma alternativa ao scp que pode ser mais familiar e mais adequada para transferências de arquivos múltiplos é o sftp. Ele vem com todas as principais versões do ssh que eu encontrei.

    
por 10.10.2011 / 17:17

Tags