介绍
Rsync(remote sync)是类unix系统下的数据镜像备份工具,支持大多数的类unix系统,无论是Linux、Solaris还是BSD,都经过了的测试,现在也有支持windows下的rsync(cwRsync)也已经测试通过,rsync 是一个节约带宽的备份方案,不像传统的 ftp 会下载所有的文件,不管是否有更新,而 rsync 只下载那些做了更新的数据。它的特性如下:

          ●.可以镜像保存整个目录树和文件系统。
          ●. 可以很容易做到保持原来文件的权限、时间、软硬链接等等。
          ●. 无须特殊权限即可安装。
          ●. 优化的流程,文件传输效率高。
          ●. 支持匿名传输

何时选择Rsync
通过ssh用tar 为文件系统的某部分建立远程副本是非常理想的,而rsync则更适合用来使两台机器之间保持文件系统的同步。一般说来,tar 用于最初的副本,而rsync 则用于获取自最后一份副本以来所发生的更改。这是因为不存在任何目标文件时,tar 可能比rsync 速度更快,但是当两个文件系统之间的差异很小时,rsync 会比tar 快得多

Rsync 安装
安装环境:FreeBSD 6.0-RELEASE
所需软件:rsync-2.6.7.tar.gz
安装路径:/usr/local/rsync
下载地址:http://rsync.samba.org/ftp/rsync/rsync-2.6.7.tar.gz  (740K)
安装过程:
tar xvzf rsync-2.6.7.tar.gz
cd rsync-2.6.7
./configure --prefix=/usr/local/rsync
make
make install

参数说明:--prefix 指定rsync要安装的目录.
至此,安装过程就结束了

 

Rsync配置
/etc/rsyncd.conf  (默认是没有的,可以手工创建)
#全局选项
strict modes =yes                        #是否检查口令文件的权限
port = 873                               #默认端口873
log file = /var/log/rsyncd.log           #日志记录文件

pid file = /usr/local/rsync/rsyncd.pid   #运行进程的ID写到哪里

#模块选项
[test]                                   # 这里是认证的模块名,在client端需要指定
max connections = 5                      #客户端最大连接数,默认0(没限制)
uid = livedoorcn                         #指定该模块传输文件时守护进程应该具有的uid
          gid = livedoorcn               #指定该模块传输文件时守护进程应该具有的gid
          path = /home/rsync_test        # 需要做备份的目录
          ignore errors                  # 可以忽略一些无关的IO错误
          read only = no                 #no客户端可上传文件,yes只读
          write only = no                #no客户端可下载文件,yes不能下载
          hosts allow = *                #充许任何主机连接
          hosts deny = 10.5.3.77         #禁止指定的主机连接
          auth users = livedoorcn        # 认证的用户名,如果没有这行,则表明是匿名
          secrets file = /usr/local/rsync/rsyncd.scrt    # 指定认证口令文件位置

   
生成rsync密码文件
在server端生成一个密码文件/usr/local/rsync/rsyncd.scrt
      
       vi rsyncd.scrt
        ---------content----------
        livedoorcn:******
        ----------end-------------

注意:密码文件的权限,是由rsyncd.conf里的参数
strict modes =yes/no 来决定
Rsync 的启动
 rsycn 的启动方式有多种,我们在这里介绍以下几种:
●. 守护进程方式:
/usr/local/rsync/bin/rsync --daemon
●.inetd方式:
在/etc/services中加入:
rsync           873/tcp
然后在/etc/inetd.conf中加入:
rsync   stream  tcp     nowait  root   /usr/local/bin/rsync rsyncd --daemon
●.加入rc.local(FreeBSD)
编辑/etc/rc.d/rc.local,在最后添加:
/usr/local/bin/rsync --daemon

验证启动是否成功
 ps -aux |grep rsync
 root       59120  0.0  0.2  1460   972  ??  Ss    5:20PM   0:00.00  /usr/local/rsync/bin/rsync –daemon

netstat -an |grep 873
tcp4       0      0  *.873                  *.*                    LISTEN

Rsync 客户端安装(我这里server和client是同一台机器)
安装环境:FreeBSD 6.0-RELEASE
所需软件:rsync-2.6.7.tar.gz
安装路径:/usr/local/rsync
下载地址:http://rsync.samba.org/ftp/rsync/rsync-2.6.7.tar.gz  (740K)
安装过程:
tar xvzf rsync-2.6.7.tar.gz
cd rsync-2.6.7
./configure --prefix=/usr/local/rsync
make
make install

参数说明:--prefix 指定rsync要安装的目录.
至此,安装过程就结束了

 

实例演示
cd /usr/local/rsync/bin
下载文件
./rsync -vzrtopg --progress --delete livedoorcn@10.5.3.98::test /tmp/rsync

上传文件
./rsync -vzrtopg --progress --delete /tmp/rsync  livedoorcn@10.5.3.98::test   
Rsync 同步参数说明
-vzrtopg里的v是verbose,z是压缩,r是recursive,topg都是保持文件原有属性如属主、时间的参数。
--progress是指显示出详细的进度情况
--delete是指如果服务器端删除了这一文件,那么客户端也相应把文件删除
Livedorocn@10.5.3.98中的livedoorcn是指定密码文件中的用户名
::test是指在rsyncd.conf里定义的模块名
/tmp/rsync是指本地要备份目录