Di gran lunga il modo più semplice è semplicemente copiarlo via scp. Inoltre, questa sintassi funziona in realtà diversamente da altri suggerimenti.
Non puoi battere questa sintassi per facilità. Ti consente di copiare in modo ricorsivo, sincronizzare o qualsiasi cosa tu voglia senza la seccatura di considerare pipe potenzialmente complesse. Questa sintassi è intuitivamente chiara, sarà più facilmente supportata dagli amministratori di sistema che ti seguono e non fanno un uso inutile di cat .
scp -3 devappserver:/path/to/copy/from qaappserver:/path/to/copy/to
Dalla pagina man di scp : le -3
copie tra due host remoti vengono trasferite attraverso l'host locale. Senza questa opzione i dati vengono copiati direttamente tra i due host remoti. Nota che questa opzione disabilita l'indicatore di avanzamento.
Nell'esempio seguente
- La tua workstation si chiama MacBook-Pro.
- Dev Jump Box si chiama devjumpserver
- Dev Application Server è chiamato devapplicationserver
- Si trova nella zona DNS LAN denominata .local
- QA Jump Box si chiama qajumpserver
- QA Application Server si chiama qaapplicationserver
- Si trova nella zona DNZ LAN denominata .local
- Eseguiremo una copia di prova di un file da 670 GB / etc / hosts ;-)
- Si presume che tu abbia configurato l'autenticazione con chiave pubblica SSH.
Ecco un file ~ / .ssh / config che configura l'accesso diretto dalla tua stazione di lavoro ai server delle applicazioni tramite il salto appropriato (ovvero il server bastione).
MacBook-Pro: ~ barrychapman $ cat ~ / .ssh / config
Ospite *
ServerAliveInterval 60
Devapplications hosteverever
Nome host devapplicationserver.local
ProxyCommand ssh -i ~ / .ssh / id_rsa barrychapman@devjumpserver.example.com -W% h:% p
User barrychapman
Host qaapplicationserver
Nome host qaapplicationserver.local
ProxyCommand ssh -i ~ / .ssh / id_rsa barrychapman@qajumpserver.example.com -W% h:% p
User barrychapman
MacBook-Pro: ~ barrychapman $
Test per la presenza di file sul server di destinazione, non sarà lì.
MacBook-Pro: ~ barrychapman $ ssh qaapplicationserver ls / tmp / hosts
ls: impossibile accedere a / tmp / hosts: nessun file o directory
Ucciso dal segnale 1.
MacBook-Pro: ~ barrychapman $
Ora copiamo un file dal Dev Application Server all'applicazione QA tramite la tua workstation.
MacBook-Pro: ~ barrychapman $ scp -3 devapplicationserver: / etc / hosts qaapplicationserver: / tmp /
Ucciso dal segnale 1.
Ucciso dal segnale 1.
MacBook-Pro: ~ barrychapman $
Ora controlliamo la presenza del file copiato sul QA Application Server. Questa volta ci sarà.
MacBook-Pro: ~ barrychapman $ ssh qaapplicationserver ls / tmp / hosts
/ tmp / hosts
Ucciso dal segnale 1.
MacBook-Pro: ~ barrychapman $
Nota
Quando si chiude una connessione ProxyCommand, verrà visualizzato il messaggio di avviso "Ucciso dal segnale 1". Questo è SSH che abbatte la connessione ProxyCommand e non è nulla di cui allarmarsi. Puoi sbarazzartene aggiungendo LogLevel Quiet
alla tua stanza di configurazione dell'host del bastione.