使用rsyncd
比使用ssh的rsync有什么实际的好处? 它真的会增加速度,稳定性吗?
我认为最大的区别是,如果您在服务器端使用rsyncd
,而不是通过ssh
rsync
,则服务器已经知道它有什么,因此构build文件列表以确定需要传输的内容要简单得多。 如果你只是推送几个文件,但是如果你正在创build,例如,通过rsync提供的CPAN ,你不需要在源端创build文件列表时间。
这是一个老问题,但在守护进程模式和ssh之间使用rsync
有另一个非常有效的原因:
我有一个10TB的NAS备份到另一个10TB的NAS上,SSH隧道的encryption开销是转移的限制因素。 这两个NAS都是相当低功耗的1.8 Ghz Intel Atom,即使使用更简单的sshencryption选项(例如ssh -c arcfour
作为ssh调用rsync),encryption开销仍然最高可达200-300 Mbps,千兆以太网。
在一端使用rsync守护进程可以消除encryption开销,并且可以为大型的连续文件实现> 800 Mbps的传输。
我不认为通过SSH比较运行的rsyncd和rsync是有意义的。 他们通常用于完全不同的事情。
rsync over ssh通常用于备份,或通过互联网同步服务器。 rsyncd通常用于软件镜像之类的东西,因此将rsyncd与普通的HTTP或FTP镜像甚至是bittorrent进行比较会更有意义。
还有像zsync这样的软件,它允许您在使用标准HTTP服务器的同时获得许多rsync的好处
rsyncd
的function是在服务器上运行并响应(远程) rsync
请求。
(当我们说rsyncd
是指rsync
作为一个守护进程运行的时候,当我们说'remote'时,我们意思是远离运行rsyncd
的机器的rsyncd
)
两者都会使用ssh来安全地交谈。
这不是一个真正的使用其中一个的问题,但是如果rsync
被用来在同一台机器上复制文件和目录,我不认为它需要作为一个守护进程来运行。
我认为rsync
手册页澄清了这一点。
rsyncd(带守护程序的rsyncd)默认使用端口873。
这将使用本地rsync协议,但不encryption任何内容。 它仅用于本地或可信networking。
如果你想要安全,你必须通过SSH使用rsync或rsyncd,所有的数据传输都将被ssh协议录入。