我需要将大约4.2 GB的文件从local computer
转移到server B
。但是要ssh到服务器B,我需要ssh到server A
。
目前,我正在将文件从local computer
复制到服务器A,然后从server A
复制到server B
。
所以流程是这样的:
rsync -avz --del ~/Desktop/abc/ <my-user-name>@<server-A>:~/abc
rsync -avz --del ~/Desktop/abc/ <my-user-name>@<server-B>:~/abc
这很慢并且复制了4.2 gb的数据而不是一次!
我可以将rsync
的文件从本地计算机直接传输到server B
吗?
答案 0 :(得分:9)
您始终可以使用ssh
和proxy命令,它允许您透明地传输文件。使用此配置(〜/ .ssh / config):
Host <server-A>
User <user-A>
Host <server-B>
User <user-B>
ProxyCommand ssh <server-A> -W %h:%p
您可以调用rsync:
rsync -avz --del ~/Desktop/abc/ <server-B>:~/abc
数据将仅被路由&#34;中间主人。
答案 1 :(得分:0)
您想要的是使用端口转发从服务器转发 ssh / rsync 端口(通常是端口22) B 到服务器A 上的备用端口,因此当您调用rsync -e "ssh -p altport" serverA:/sourcedir /destdir
时,实际上是从serverB
调用rsync。
StackExchange和其他网站上有很多好的方法。例如:
会让你开始。使用端口转发,您实际上使用 serverA 作为传递主机,因此您只需转移4.2G一次。