到目前为止,最简单的方法是仅通过scp复制它。另外,此语法实际上与其他一些建议不同。
您不能轻易击败这种语法。它使您可以递归复制,rsync或任何您想要的内容,而不必考虑潜在的复杂管道的麻烦。此语法直观清晰,将由紧随您的Sys Admins轻松支持,并且不会无用的使用cat。
scp -3 devappserver:/path/to/copy/from qaappserver:/path/to/copy/to
从scp手册页:-3
两个远程主机之间的副本通过本地主机传输。如果没有此选项,数据将直接在两个远程主机之间复制。请注意,此选项禁用进度条。
在下面的示例中
- 您的工作站名为MacBook-Pro。
- Dev Jump Box被命名为devjumpserver
- 开发应用程序服务器被命名为devapplicationserver
- 质量检查跳转框命名为qajumpserver
- QA应用程序服务器被命名为qaapplicationserver
- 我们将对670GB / etc / hosts文件进行测试;-)
- 假设您已配置SSH公钥身份验证。
这是一个〜/ .ssh / config文件,该文件设置了通过适当的跳转(也称为堡垒服务器)从工作站到应用程序服务器的直接访问。
MacBook-Pro:〜barrychapman $ cat〜/ .ssh / config
主持人*
ServerAliveInterval 60
托管开发应用程序
主机名devapplicationserver.local
ProxyCommand ssh -i〜/ .ssh / id_rsa barrychapman@devjumpserver.example.com -W%h:%p
用户barrychapman
主机qaapplicationserver
主机名qaapplicationserver.local
ProxyCommand ssh -i〜/ .ssh / id_rsa barrychapman@qajumpserver.example.com -W%h:%p
用户barrychapman
MacBook-Pro:〜barrychapman $
测试目标服务器上是否存在文件,该文件将不存在。
MacBook Pro:〜barrychapman $ ssh qaapplicationserver ls / tmp / hosts
ls:无法访问/ tmp / hosts:没有此类文件或目录
被信号1.杀死。
MacBook-Pro:〜barrychapman $
现在,让您通过工作站将文件从Dev Application服务器复制到QA Application。
MacBook Pro:〜barrychapman $ scp -3 devapplicationserver:/ etc / hosts qaapplicationserver:/ tmp /
被信号1.杀死。
被信号1.杀死。
MacBook-Pro:〜barrychapman $
现在,让我们检查质量检查应用程序服务器上复制的文件是否存在。这次会在那里。
MacBook Pro:〜barrychapman $ ssh qaapplicationserver ls / tmp / hosts
/ tmp /主机
被信号1.杀死。
MacBook-Pro:〜barrychapman $
注意
关闭ProxyCommand连接时,您将看到警告消息“信号1杀死”。这是SSH断开的ProxyCommand连接,没有什么好警告的。您可以通过将其添加LogLevel Quiet
到堡垒主机配置节中来摆脱它。