传统上,在Unix系统下使用的备份工具主要有tar、dump(rdump)、restore(rrestore)、dd、cpio、rcp等工具。这些工具中大多数适合于本地备份(native backup),倘若要执行远程备份(remote backup)的话,往往显得力不从心。在Linux系统下提供了一个工具——rsync,据其文档说明,它是rcp工具的一个替代品,但是更快捷、更灵活。rsync采用的remote-update协议允许rsync通过网络链路传输两组文件的增量,而是不是文件本身,据此rsync可以提高传输效率。
rsync所具有的功能特色主要有:
l支持对连接、设备、用户、组、权限的拷贝;
l支持类似GNU tar工具的exclude和exclude-from选项;
l类似CVS的exclude模式:忽略相同的文件;
l可以使用多种远程shell工具,比如rsh或者ssh;
l不需要root权限即可运行;
l将文件传输流水线化以减少延迟开销;
lrsync服务器允许以匿名或者认证方式登录(特别适合于做镜像)。
和大多数网络工具一样,rsync也是以服务器/客户端的方式工作的。但较为特别的一点是:rsync服务器和客户端都使用同一个程序——rsync(如果按常见的做法,则应该是服务器程序为rsyncd,客户端程序为rsync)。启动服务器的时候需要指明--daemon选项,以表明启动的是服务器。而在启动客户端程序的时候则不应开启--daemon选项。
在下文中,假设需要备份的主机为192.168.0.100,其上运行rsync服务器,将该主机称之为rsync-serv