27.6. rsync 简介

如果需要定期传送大量数据而更改的数据量不是很大,则适用 rsync。举例来说,创建备份时的情况往往就是这样。另一种应用涉及临时服务器。临时服务器是储存万维网服务器的完整目录树的服务器,这些万维网服务器定期镜像到 DMZ 中的万维网服务器。

27.6.1. 配置和操作

rsync 有两种操作方式。可用于存档或复制数据。要执行上述操作,目标系统上只需要有远程 shell,如 ssh。不过,rsync 也可用作守护程序,为网络提供目录。

rsync 的基本操作方式不需要任何特殊配置。rsync 能直接将完整目录镜像到其它系统中。举例来说,以下命令在名为 sun 的备份服务器上为 tux 的主目录创建了备份副本。

 rsync -baz -e ssh /home/tux/ tux@sun:backup
 

以下命令用于回放该目录:

 rsync -az -e ssh tux@sun:backup /home/tux/
 

到目前为止,该程序的操作方式与普通的复制工具 (如 scp) 的操作方式相差无几。

应该以“rsync”方式操作 rsync,以便充分利用其所有功能。这需要在其中一个系统上启动 rsyncd 守护程序。在文件 /etc/rsyncd.conf 中配置该守护程序。例如,要使目录 /srv/ftp 可用于 rsync,请使用以下配置:

gid = nobody
uid = nobody
read only = true
use chroot = no
transfer logging = true
log format = %h %o %f %l %b
log file = /var/log/rsyncd.log

[FTP]
        path = /srv/ftp
        comment = An Example
 

然后使用 rcrsyncd start 启动 rsyncd。rsyncd 也可以在引导进程中自动启动。通过在 YaST 提供的运行级别编辑器中激活此服务或通过手工输入命令 insserv rsyncd,都可以完成上述设置。也可以使用 xinetd 来启动 rsyncd。不过,建议只在很少使用 rsyncd 的服务器上采用这种启动方式。

下例还创建了一个列出所有连接的日志文件。此文件储存在 /var/log/rsyncd.log 中。

随后可以从客户机系统测试传送。请使用以下命令完成该操作:

rsync -avz sun::FTP
 

此命令列出服务器的 /srv/ftp 目录中现有的所有文件。此请求还记录在日志文件 /var/log/rsyncd.log 中。要启动实际的传送,请提供目标目录。用 来表示当前目录。例如:

rsync -avz sun::FTP
 

默认情况下,使用 rsync 同步时不会删除任何文件。如果应强制删除,必须明确指定附加选项 --delete。为保证不删除任何较新的文件,可转而使用选项 --update。必须手工解决所有冲突。

27.6.2. 参见信息

有关 rsync 的重要信息,请参见手册页 man rsyncman rsyncd.conf/usr/share/doc/packages/rsync/tech_report.ps 专门提供了关于 rsync 工作原理的技术参考。在 rsync 的万维网站点 http://rsync.samba.org/ 上可以找到关于该项目的最新消息。