默认情况下,rsync 使用 ssh 作为传输层。不幸的是,对于快速的本地网络,ssh 非常慢。是否可以将 rsync 与 netcat / nc 一起使用?
我做了一些实验,但它对我不起作用。我想消除 ssh,因为它是瓶颈。
当然,我想在 Linux 上使用它。
以下是使用 nc 的 debian/ubuntu 版本的示例(使用nc(1)中所述的命名管道,因为 nc 没有\xe2\x80\x99t-e
或-c
)
在服务器端:
\n\nrm -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\nrsync --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--progress
to-check=0/n