De longe, a maneira mais fácil é copiá-lo via scp. Além disso, essa sintaxe realmente funciona ao contrário de outras sugestões.
Você não pode superar essa sintaxe com facilidade. Ele permite copiar recursivamente, rsync ou o que você quiser, sem o incômodo de considerar tubos potencialmente complexos. Essa sintaxe é intuitivamente clara, será mais facilmente suportada pelos administradores de sistema que o seguem e não faz uso inútil do gato .
scp -3 devappserver:/path/to/copy/from qaappserver:/path/to/copy/to
Na página do manual scp : -3
cópias entre dois hosts remotos são transferidas pelo host local. Sem essa opção, os dados são copiados diretamente entre os dois hosts remotos. Observe que esta opção desativa o medidor de progresso.
No exemplo abaixo
- Sua estação de trabalho é denominada MacBook-Pro.
- Dev Jump Box é nomeado devjumpserver
- O servidor de aplicativos de desenvolvimento é chamado devapplicationserver
- Está na zona DNS da LAN chamada .local
- QA Jump Box é nomeado qajumpserver
- O QA Application Server é denominado qaapplicationserver
- Está na zona DNZ da LAN chamada .local
- Executaremos uma cópia de teste de um arquivo / etc / hosts de 670 GB ;-)
- 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 da estação de trabalho aos servidores de aplicativos por meio do salto apropriado (também conhecido como servidor de bastiões).
MacBook-Pro: ~ barrychapman $ cat ~ / .ssh / config
Hospedeiro *
ServerAliveInterval 60
Host devapplicationsever
HostName devapplicationserver.local
ProxyCommand ssh -i ~ / .ssh / id_rsa barrychapman@devjumpserver.example.com -W% h:% p
Usuário barrychapman
Host qaapplicationserver
HostName qaapplicationserver.local
ProxyCommand ssh -i ~ / .ssh / id_rsa barrychapman@qajumpserver.example.com -W% h:% p
Usuário barrychapman
MacBook-Pro: ~ barrychapman $
Testando a presença do arquivo no servidor de destino, ele não estará lá.
MacBook-Pro: ~ barrychapman $ ssh qaapplicationserver ls / tmp / hosts
ls: não é possível acessar / tmp / hosts: esse arquivo ou diretório não existe
Morto pelo sinal 1.
MacBook-Pro: ~ barrychapman $
Agora vamos copiar um arquivo do servidor de aplicativos de desenvolvimento para o aplicativo de controle de qualidade por meio da estação de trabalho.
MacBook-Pro: ~ barrychapman $ scp -3 devapplicationserver: / etc / hosts qaapplicationserver: / tmp /
Morto pelo sinal 1.
Morto pelo sinal 1.
MacBook-Pro: ~ barrychapman $
Agora vamos verificar a presença do arquivo copiado no QA Application Server. Será lá desta vez.
MacBook-Pro: ~ barrychapman $ ssh qaapplicationserver ls / tmp / hosts
/ tmp / hosts
Morto pelo sinal 1.
MacBook-Pro: ~ barrychapman $
Nota
Ao fechar uma conexão ProxyCommand, você verá a mensagem de aviso "Morto pelo sinal 1". Isso é SSH destruindo a conexão ProxyCommand e não é nada para se alarmar. Você pode se livrar dele adicionando LogLevel Quiet
à estrofe de configuração do host do bastião.