Como puxar um arquivo de um servidor usando scp?

27

Estou na máquina A e quero puxar um arquivo da máquina B.

A$ scp <myuserid>@hostB:<path of file in B> .

diz que:

scp: <path of file in B>: No such file or directory

Mas na máquina B, este arquivo existe neste caminho.

O que está errado?

    
por xyz 12.10.2011 / 18:11

5 respostas

37

Você não especificou nenhum arquivo: você precisa adicionar o arquivo (com o caminho) após os dois pontos:

A$ scp <myuserid>@hostB:/absolutepath/file .

ou

A$ scp <myuserid>@hostB:relativepath/file .

para um caminho relativo ao seu diretório pessoal.

Se você não especificar um usuário diferente (ou seja, o usuário em A e B será o mesmo), não será necessário o @

A$ scp hostB:/path/file .
    
por 12.10.2011 / 18:21
1

use caminho scp adequado

scp ssh://user@hostname/tmp/foo.txt .
    
por 12.10.2011 / 18:18
1

Você pode especificar um caminho de arquivo relativo ao seu diretório pessoal ou um caminho de arquivo absoluto. Por exemplo, se foo.txt estiver em um diretório chamado docs em seu diretório inicial e bar.txt estiver em /var/tmp , você poderá fazer

scp [email protected]:docs/foo.txt .
scp [email protected]:/var/tmp/bar.txt .

Observe que, se o nome do arquivo contiver caracteres especiais para o shell remoto (geralmente whitespace ou !"#$&'*;<>?[\]^'{|}~ ), será necessário escapá-los para o shell remoto, além de escapar deles para o shell local. Por exemplo, se o arquivo for chamado foo bar.txt e estiver em seu diretório pessoal:

scp [email protected]:'foo\ bar.txt' .

Se você tiver dificuldades com arquivos que contenham caracteres de pontuação, tente usar sftp em vez de scp para transferi-los. Ou use um método ainda mais conveniente, se você pode usar o FUSE : monte o sistema de arquivos da máquina remota usando sshfs e, em seguida, use comandos comuns de manipulação de arquivos.

mkdir host.example.com
sshfs [email protected]:/ host.example.com
cp host.example.com/path/to/file .
    
por 13.10.2011 / 02:03
1
$ scp username@remoteip:remote_location_file /location/where/you/save

Isso só funciona quando você copia o arquivo. se você quiser copiar um diretório use

$ scp -r username@remoteip:remote_location_directory /location/where/you/save

Opção que você pode usar em sua demanda

-P porta
   Especifica a porta a conectar no host remoto. Note que esta opção é escrita com um maiúscula "P", pois -p já está reservado para preservar os tempos e modos do arquivo no rcp.

-p
   Preserva tempos de modificação, tempos de acesso e modos do arquivo original.

-r
   Copie recursivamente diretórios inteiros.

-v

Modo detalhado. Faz com que o scp e o ssh imprimam mensagens de depuração sobre seu progresso. Isso é útil para depurar problemas de conexão, autenticação e configuração.

    
por 30.11.2016 / 10:32
0

Pode-se fazer o SCP de duas maneiras facilmente se você tiver o usuário DMZ e a senha Você está na sua máquina local: Da DMZ para a sua máquina linux local (pull). Significa copiar abc.text dentro da pasta2 para o seu atual PWD logado.

scp user@111111:folder1/folder2/abc.txt .

Ele pedirá senha

isso é tudo

Agora você deseja enviar uma pasta com subpastas e arquivos da sua máquina local para a DMZ:

usr @ localmachine: ~ / abc / defs > scp -r folder / usr @ 111111: vkrishna / docker /

novamente a senha será solicitada

: é a pasta raiz da máquina remota e vkrishna é uma pasta lá & novamente subpasta docker. Localmente defs pasta tem uma pasta chamada "pasta" que queremos transferir completamente.

Como / abc / defs / folder

    
por 08.03.2018 / 12:51

Tags