我不明白在守护进程模式下需要 rsync 服务器。如果我可以将 rsync 与 SSH 或 telnet 结合使用,会有什么好处?
答案1
很多,但我会立即引用一些。
如果 ssh/rsh 在远程服务器上不可用或者它们在配置或更严格的网络规则方面被破坏怎么办?使用 rsh/ssh 仍然需要客户端(取决于发送者或接收者角色),但是远程端必须在本地分叉 rsync 二进制文件并与本地运行的 rsync 进程建立连接。 rsh/ssh 仅提供连接隧道;就 rsync 而言,rsync 正在通过管道与其他 rsync 进程进行通信。
拥有守护进程模式 rsync 进程将使服务器成为真正的 ftp 类似服务器,其中一些文件系统可以通过 rsync 模块使用。其他一切都可以避免。假设我只想提供 /usr/local 和 /var 供下载,并拒绝任何 rsync 客户端的其他下载请求。我可以在主机级别或文件系统(模块)级别使用自由裁量权来允许上传或下载(只读)。
可以通过配置文件专门控制主机/用户级访问、身份验证、授权、日志记录和下载/上传的文件系统(结构)模块。每次更改配置文件后,
rsyncd --daemon
无需重新启动或HUPped
。还可以控制一次可以连接到 rsync 服务器进程的客户端数量。这很好,因为我不希望 rsyncd 服务器进程完全占用主机的 CPU 或基于磁盘的 I/O 操作。可以通过守护进程模式下的 rsyncd 配置来使用 chroot 功能。如果我想避免客户端连接到我的 rsyncd 以获取必须在主机上受到保护且不应具有外部访问权限的任何文件/文件系统,我可以使用此功能作为一个非常简洁的安全功能。
我可以完全拒绝 rsync 客户端使用的一些选项,并且不在服务器端进行处理,例如不允许该
--delete
选项。可以选择在 rsync 过程之前和之后运行一些命令/脚本。一个例子是在传输后模式下报告和存储 rsync 统计信息。
这些是其中的一些,但我相信 rsync 的专家用户可以对此有更多的了解。
答案2
我在尝试使用 cygwin 在 Linux 计算机和 Windows 计算机之间同步大文件夹时遇到了问题。在放弃 SSH 隧道转而使用 rsync 守护进程后,我的问题就消失了。
客户端不需要知道他/她正在推/拉的服务器的文件系统布局等
答案3
rsync 的常见用途是镜像文件的公共档案。主副本的操作员不希望允许远程 shell 访问存档,但希望运行远程镜像的志愿者能够有效地获取存档的完整副本。 Rsync 对于创建镜像非常有效,因为它只会下载更改的位,并且如果网络出现轻微中断,它不会重新下载整个大文件(CD/DVD 图像)。
Bit Torrent 协议实际上可能是现在更好的选择,但 rsync 早在很多年前就发布了。
即使现在许多主要档案馆仍然使用 rsync 进行镜像。
- https://wiki.ubuntu.com/Mirrors
- http://fedoraproject.org/wiki/Infrastruct/Mirroring
- http://www.debian.org/mirror/ftpmirror
看:http://www.debian.org/mirror/ftpmirror
我们推荐的镜像协议是rsync。
答案4
您可以向外部网提供 rsync 服务并允许以这种方式进行同步,而无需公开 ssh。
在守护进程模式下,rsync 可能会更快地计算本地校验和,因此如果您期望多个并行客户端,则它是更好的套件。使用独立命令时,需要为每个会话重新计算校验和。