• Rsync基本概念与配置

    Rsync 基本特征

    Rsync是linux/Unix文件同步和传送工具。

    1. 能更新整个目录和树和文件系统,并可选择性的压缩以及递归拷贝
    2. 有选择性的保持符号链链、硬链接、文件属性、权限、设备以及时间等;
    3. 能用rsh、ssh 或直接端口做为传输入端口;
    4. 支持匿名传输,以方便进行网站镜象等;
    5. 加密传输数据,保证了数据的安全性;

    Rsync 安装

    rsync的安装很简单,建议使用最简单的yum安装即可:

     yum install rsync

    当然也可以选择源码安装:

    $ wget http://rsync.samba.org/ftp/rsync/src/rsync-3.0.9.tar.gz

    $ tar xf rsync-3.0.9.tar.gz

    $ cd rsync-3.0.9

    $ ./configure && make && make install

    Rsync 配置文件组成结构

    1.  mkdir /etc/rsyncd                           #创建一个rsyncd的目录,我们用来存放rsyncd.conf 和rsyncd.secrets文件;

    2. touch /etc/rsyncd/rsyncd.conf        #创建rsyncd.conf ,这是rsync服务器的配置文件;

    3. touch /etc/rsyncd/rsyncd.secrets    #创建rsyncd.secrets ,这是用户密码文件;

    密码文件格式:/etc/rsyncd/rsyncd.secrets:

    用户名:密码

    Rsync 命令参数

    Rsync 的6种工作模式

    1. rsync -avSH /home/coremail/    /cmbak/

    拷贝本地文件,将/home/coremail目录下的文件拷贝到/cmbak目录下


    2. rsync -av /home/coremail/    192.x.x.x:/home/coremail/

    使用一个远程shell程序(如rsh、ssh)来实现将本地机器的内容拷贝到远程机器,默认使用873端口,如果想指定端口也可以,user用户要有对目标地址的写权限:

    rsync -avP ‘-e ssh -p 8738’  –exclude=”*.log.*” /home/coremail/    user@192.x.x.x:/home/coremail/


    3. rsync -av 192.x.x.x:/home/coremail/    /home/coremail/

    使用一个远程shell程序(如rsh、ssh)来实现将远程机器的内容拷贝到本地机器。


    4. rsync -av root@192.x.x.x::www    /databack

    拷贝远程rsync服务器(daemon形式运行rsync)的文件到本地机。远程服务器需要启动rsync服务进程,并配置模块


    5. rsync -av /databack         root@192.x.x.x::www

    拷贝本地机器文件到远程rsync服务器(daemon形式运行rsync)中。当DST路径信息包含”::”分隔符时启动该模式。


    6. rsync -v rsync://192.x.x.x/data

    显示远程机的文件列表。这类似于rsync传输,不过只要在命令中省略掉本地机信息即可。

    Rsync 配置参数

    1. 全局配置

    2. 模块配置

    模块定义什么呢?主要是定义服务器哪个目录要被同步。每个模块都要以[name]形式。这个名字就是在rsync 客户端看到的名字。而服务器真正同步的数据是通过path 指定的。我们可以根据自己的需要,来指定多个模块。每个模块要指定认证用户,密码文件、但并不是必须的。

    Rsync 启动

    启动rsync服务器相当简单,有以下几种方法:

    方法1: –daemon参数方式,是让rsync以服务器模式运行

       #/usr/bin/rsync –daemon  –config=/etc/rsyncd/rsyncd.conf  #–config用于指定rsyncd.conf的位置,如果在/etc下可以不写

    方法2: xinetd方式

      修改/etc/services加入如下内容

    rsync  873/tcp  # rsync

    rsync  873/udp  # rsync

    这一步一般可以不做,通常都有这两行(我的RHEL4和GENTOO默认都有)。修改的目的是让系统知道873端口对应的服务名为rsync。如没有的话就自行加入。

    设定 /etc/xinetd.d/rsync, 简单例子如下:

    service rsync

    {

    disable = no

    socket_type     = stream

    wait            = no

    user            = root

    server          = /usr/bin/rsync

    server_args     = –daemon

    log_on_failure  += USERID

    }

    上述, 主要是要打开rsync這個daemon, 一旦有rsync client要连接时, xinetd会把它转介給 rsyncd(port 873)。然后service xinetd restart, 使上述设定生效。