从 Windows 终端服务器上的本地硬盘到 Linux 服务器进行 rsync

从 Windows 终端服务器上的本地硬盘到 Linux 服务器进行 rsync

我必须忍受一个相当复杂的设置,我无法改变它。它就像这样:

目标:将文件从网络 1 上的 USB 驱动器 rsync 到网络 2 上的 Linux 服务器,其中两个网络之间的唯一连接是通过位于网络 2 上的 Windows 终端服务器 (ts),但允许从网络 1 进行远程桌面 (rdp) 连接。

最初,我可以通过 VPN 从网络 1 连接到网络 2,将 USB 驱动器连接到我的计算机(Windows),然后对网络 2 上的 Linux 服务器执行 rsync。这个工作相当快,只花了几分钟。现在已经决定不允许使用 VPN,我们必须通过终端服务器。因此,我通过 rdp 连接到 ts 并将我的 USB 驱动器共享为本地设备,然后在 ts 上执行 rsync。它读取我的 USB 上的文件并将它们同步到 Linux 服务器,但现在整个过程需要 10-12 小时。仅复制所有文件(拖放)就少花几个小时。我怀疑速度慢的原因是当 ts 确定要同步哪些文件时,即逐步浏览目录和文件。

我的 rsync 参数是:-avz --size-only

我希望有人能给我一个可以尝试的想法。非常感谢!

答案1

您可以通过运行 rsync 来验证缓慢是否是由于需要更改什么,--dry-run它将显示需要传输的内容而无需实际进行任何复制。

根据数据量和连接速度,我可能会禁用-z压缩功能,或者至少试验一下是否会产生任何差异。

您也可以通过使用用于加密会话的密码来加快速度,方法是指定--rsh="ssh -c arcfour"使用比默认 arcfour 密码更便宜的密码。

还值得注意的是,如果您只是希望复制数据(而不是识别/复制差异),那么scp速度应该比rsync.rsync 执行滚动校验和要快得多,如果您正在传输知道会发生广泛更改的大文件,这可以节省 CPU 使用率。

相关内容