如何在两台无法直接互相看见的服务器之间传输大型目录?

如何在两台无法直接互相看见的服务器之间传输大型目录?

名为 SeesBoth 的服务器可以同时看到服务器 A 和服务器 B。A 可以看到 SeesBoth,但看不到 B。B 可以看到 SeesBoth,但看不到 A。(有人告诉我这是由于子网掩码造成的。)

我曾被要求将一个包含许多子目录的大型目录从 A 复制到 B。做这件事的人以前曾将一小部分从 A 复制到 SeesBoth,将其转移到 B,再复制另一小部分……这花了他好几天的时间。

是否有 scp、curl 或 rsync 命令可以从 A 复制数据、通过 SeesBoth 传输数据并以正确的格式存入 B?

答案1

如果 scp 足够的话,那么是的,OpenSSH 有一个选项scp -3

scp -3 user@hostA:/foo user@hostB:/foo

或者,您可以流式传输柏油或者太平洋保险协会两个 SSH 连接之间的存档:

ssh user@hostA "cd /foo && tar -czf - ." | ssh user@hostB "cd /foo && tar -xvzf -"

相关内容