Arquivos SCP entre 2 vms

Arquivos SCP entre 2 vms

Eu tenho 2 máquinas virtuais. A primeira máquina virtual é onde os arquivos de origem são armazenados. A segunda máquina virtual é onde está meu script bash e deve copiar os arquivos da origem para minha segunda máquina virtual.

Como posso fazer isso no Bash?

É possível transferir arquivos SCP de 1 máquina virtual para uma 2ª máquina virtual no Bash, quando meu script está sendo executado na 3ª máquina? Se sim, por favor me mostre como fazer isso.

Responder1

É possível (desde que ambos os hosts estejam escutando no SSH e o primeiro host remoto possa ver o segundo)! Por que você não tenta?

scp remote1:/path/to/file remote2:/path/to

Pode ser necessário fornecer nomes de usuário e/ou senhas para ambos os hosts (se o seu nome de usuário variar de máquina para máquina).

Se você usar autenticação baseada em agente com encaminhamento de agente habilitado, não será necessário fornecer nenhuma senha (este é meu método preferido de trabalho).

Observe que isso não tem nada a ver com Bash (ou mesmo com máquinas virtuais) e deve funcionar em qualquer shell.

Responder2

A maneira usual de fazer isso é fazer ssh em uma das máquinas remotas e emitir o scp a partir daí.

#3rd-vm> ssh 2nd-vm
#2nd-vm> scp file 1st-vm:~/

Responder3

Se você precisar fazer a ponte através da terceira máquina, poderá fazê-lo com ssh assim:

ssh remote1 cat file | ssh remote2 'cat > file'

Ou com alcatrão:

ssh remote1 tar cf - path/to/copy | ssh remote2 tar xf - -C path/to/dest

informação relacionada