Rsync守护进程:它真的有用吗?

使用rsyncd比使用ssh的rsync有什么实际的好处? 它真的会增加速度,稳定性吗?

我认为最大的区别是,如果您在服务器端使用rsyncd ,而不是通过ssh rsync ,则服务器已经知道它有什么,因此构build文件列表以确定需要传输的内容要简单得多。 如果你只是推送几个文件,但是如果你正在创build,例如,通过rsync提供的CPAN ,你不需要在源端创build文件列表时间。

这是一个老问题,但在守护进程模式和ssh之间使用rsync有另一个非常有效的原因:

  • 降低CPU开销。

我有一个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协议录入。