De longe, a maneira mais fácil é simplesmente copiá-lo via scp. Além disso, essa sintaxe realmente funciona diferente de outras sugestões.
Você não pode bater essa sintaxe para facilitar. Ele permite que você copie recursivamente, rsync ou o que quiser, sem o incômodo de considerar canais potencialmente complexos. Esta sintaxe é intuitivamente clara, será mais facilmente suportada pelos Administradores do Sys que seguem você e não faz uso inútil do gato .
scp -3 devappserver:/path/to/copy/from qaappserver:/path/to/copy/to
A partir da página man do scp : -3
As cópias entre dois hosts remotos são transferido através do host local. Sem essa opção, os dados são copiados diretamente entre os dois hosts remotos. Note que esta opção desativa o medidor de progresso.
No exemplo abaixo
- A sua estação de trabalho chama-se MacBook Pro.
- Dev Jump Box é chamado devjumpserver
- O Dev Application Server é denominado devapplicationserver
- Está na zona DNS da LAN chamada .local
- O QA Jump Box é chamado de qajumpserver
- O QA Application Server é denominado qaapplicationserver
- Está na zona DNZ da LAN chamada .local
- Vamos fazer uma cópia de teste de um arquivo / etc / hosts de 670GB; -)
- Supõe-se que você tenha a autenticação de chave pública SSH configurada.
Aqui está um arquivo ~ / .ssh / config que configura o acesso direto de sua estação de trabalho aos servidores de aplicativos através do salto apropriado (também conhecido como servidor bastion).
MacBook-Pro:~ barrychapman$ cat ~/.ssh/config Host * ServerAliveInterval 60 Host devapplicationsever HostName devapplicationserver.local ProxyCommand ssh -i ~/.ssh/id_rsa [email protected] -W %h:%p User barrychapman Host qaapplicationserver HostName qaapplicationserver.local ProxyCommand ssh -i ~/.ssh/id_rsa [email protected] -W %h:%p User barrychapman MacBook-Pro:~ barrychapman$
Testando a presença de arquivo no servidor de destino, ele não estará lá.
MacBook-Pro:~ barrychapman$ ssh qaapplicationserver ls /tmp/hosts ls: cannot access /tmp/hosts: No such file or directory Killed by signal 1. MacBook-Pro:~ barrychapman$
Agora vamos copiar um arquivo do servidor de aplicativos Dev para o aplicativo de controle de qualidade por meio de sua estação de trabalho.
MacBook-Pro:~ barrychapman$ scp -3 devapplicationserver:/etc/hosts qaapplicationserver:/tmp/ Killed by signal 1. Killed by signal 1. MacBook-Pro:~ barrychapman$
Agora, vamos verificar a presença do arquivo copiado no QA Application Server. Estará lá desta vez.
MacBook-Pro:~ barrychapman$ ssh qaapplicationserver ls /tmp/hosts /tmp/hosts Killed by signal 1. MacBook-Pro:~ barrychapman$
Nota
Ao fechar uma conexão ProxyCommand, você verá a mensagem de aviso "Killed by signal 1". Isso é SSH derrubando a conexão ProxyCommand e não é nada para se alarmar. Você pode se livrar dele adicionando LogLevel Quiet
à sua sub-rotina de configuração do host bastion.