使用 rsync 和 nc 作为传输层

Zni*_*nik 5 ssh rsync netcat

默认情况下,rsync 使用 ssh 作为传输层。不幸的是,对于快速的本地网络,ssh 非常慢。是否可以将 rsync 与 netcat / nc 一起使用?

我做了一些实验,但它对我不起作用。我想消除 ssh,因为它是瓶颈。

当然,我想在 Linux 上使用它。

yon*_*ran 5

以下是使用 nc 的 debian/ubuntu 版本的示例(使用nc(1)中所述的命名管道,因为 nc 没有\xe2\x80\x99t-e-c

\n\n

在服务器端:

\n\n
rm -f /tmp/rsyncpipe && mkfifo /tmp/rsyncpipe && cat /tmp/rsyncpipe | (read cmd && eval "$cmd") | nc -l 1243 >/tmp/rsyncpipe\n
Run Code Online (Sandbox Code Playgroud)\n\n

在客户端:

\n\n
rsync --progress --rsh=\'bash -c "(echo ""$@""; cat) | nc $0 1243"\' <file> 10.142.0.119:<file>\n
Run Code Online (Sandbox Code Playgroud)\n\n

不幸的是,由于先进先出,rsync即使在传输完成后仍保持打开状态,因此当它看起来像\xe2\x80\x99s完成时(当报告时),你必须在两侧加Ctrl+ 。C--progressto-check=0/n

\n