这是场景:
ssh +------------+
+---->| Server 2 |
+------------+ | +------------+
| Server 1 +---+
+------------+ | +------------+
+---->| Server 3 |
ssh +------------+
Run Code Online (Sandbox Code Playgroud)
我从SSH访问Server 1
这两个Server 2
和Server 3
(而不是从Server 2
以Server 3
也不周围的其他方法)。
我想从 to 传输一个相当大的文件2
,3
并想知道通过1
充当协调器来执行此操作的最快方法是什么。
更新:我确实在两台服务器之间建立了连接,只是没有来自/到服务器的 SSH 凭据。
你可以使用“scp”:
在服务器 1 上做这样的事情:
scp user1@server2:/path/filename user3@server3:/path
Run Code Online (Sandbox Code Playgroud)
更多信息与man scp
。
您可以直接在两台服务器之间进行传输:
在要传输到的服务器上,在某个随机端口上以侦听模式启动 nc:
ssh dst-server 'exec 1>/tmp/bah; nc -l -p 34001'
Run Code Online (Sandbox Code Playgroud)
在您要下载的服务器上,在客户端模式下使用 nc 传输。您可以使用压缩来创建一个 gzip 管道:
ssh source-server 'nc dst-server 34001 < ./bah'
Run Code Online (Sandbox Code Playgroud)
你会在 /tmp/bah 中找到你的文件