rsync command

rsync - remote synchronized 远程同步工具;采用增量压缩方式进行同步,提高了文件同步的效率。

以下采用centos进行讲解,其他平台原理相同,自行参考研究

既然设计文件的远程同步,需要两台服务器s1\s2

环境描述:

操作系统: centos 
serverA: 192.168.0.140 待同步的服务器(源服务器)
serverB: 192.168.0.141 同步到的服务器 (目标服务器)

需求: 同步serverA的目录 /home/test 到 serverB 的相同目录
  1. 安装rsync

    。 源码安装(安装之前保证本机安装gcc)
    rsync官网(http://rsync.samba.org/) #下载最新发行版本,目前最新版本rsync-3.1.1.tar.gz;
    $ tar -zxvf rsync-3.1.1.tar.gz #解压
    $ cd rsync-3.1.1 进入rsync目录
    $ ./configure –prefix=/usr ;make ;make install
    。 软件包安装

     $ yum install rsync
    
  2. 配置rsync

    默认rsync需要配置三个文件rsyncd.conf \ rsyncd.secrets \ rsyncd.motd; 如文件不存在则创建即可

    . rsyncd.conf: 主配置文件,主要配置rsync同步信息和权限设置;默认可能该文件不存在,需手动创建

     $ vi /etc/rsyncd.conf   #创建rsyncd.conf文件并在vi中编辑
    

    具体内容参考我的配置

     #Global Settings
     pid file = /var/run/rsyncd.pid
     port = 873
     address = 192.168.0.140
    
     #以什么身份运行rsync
     uid = root
     gid = root
    
     use chroot = false
     read only = no
    
     #limit access to private LANs
     hosts allow = 192.168.0.141
     hosts deny=*
     max connections = 5 
     motd file = /etc/rsyncd.motd
    
     [backup]
     path = /home/test
     list=yes 
     auth users = rsync
     secrets file = /etc/rsyncd.secrets 
     coment = welcome backup !
     log file = /var/log/rsyncd.log
     lock file = /var/run/rsyncd.lock
    

    auth users属性可以添加多个用户,用户之间用逗号分隔;所有的用户必须为服务器真实存在的用户

    . rsyncd.secrets: 存放用户密码文件,格式”用户名:密码”

     $ vi /etc/rsyncd.secrets   
    

    参考我的配置

     # username:passwd
      rsync:test123
    

    修改属主

     $chown root.root rsyncd.secrets
    

    将rsyncd.secrets这个密码文件的文件属性设为root拥有, 且权限要设为600, 否则无法备份成功!

     $ chmod 600 /etc/rsyncd.secrets  
    

    . rsyncd.motd : 存放rsync服务器信息,客户端连接成功显示的信息,无格式限制; 此文件不是必须,若不配置则注释掉rsync.conf中的motd file属性

     $ vi /etc/rsyncd.motd 
    
  3. 开启rsync端口873(开启防火墙)

     $ vi /etc/sysconfig/iptables
    

    添加如下记录:

     -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 873 -j ACCEPT