![Arquivos SCP entre 2 vms](https://rvso.com/image/1345309/Arquivos%20SCP%20entre%202%20vms.png)
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