rsync是类unix系统下的数据镜像备份工具。

它的特性如下:
可以镜像保存整个目录树和文件系统。
可以很容易做到保持原来文件的权限、时间、软硬链接等等。
无须特殊权限即可安装。
快速:第一次同步时 rsync 会复制全部内容,但在下一次只传输修改过的文件。rsync 在传输数据的过程中可以实行压缩及解压缩操作,因此可以使用更少的带宽。
安全:可以使用scp、ssh等方式来传输文件,当然也可以通过直接的socket连接。
支持匿名传输,以方便进行网站镜象。


rsync的安装,centos默认已经自带就安装了程序。无需安装。



准备:



检查是否已经安装


rpm -qa rsync 
 
 
 
 
  
 1、安装 
  
 yum install rsync 
  

 2、命令输入 
  
 rsync 
  

 出现以下表示安装成功: 
  
 rsync  version 3.0.6  protocol version 30 
  
 Copyright (C) 1996-2009 by Andrew Tridgell, Wayne Davison, and others. 
  
 Web site: http://rsync.samba.org/ 
  
 Capabilities: 
  
     64-bit files, 64-bit inums, 64-bit timestamps, 64-bit long ints, 
  
     socketpairs, hardlinks, symlinks, IPv6, batchfiles, inplace, 
  
     append, ACLs, xattrs, iconv, symtimes 
  


 rsync使用服务端-客户端同步文式 
  
 双机备份配置: 
  
 服务端: 
  
 网上有很多教程使用xinet.d来启动rsync服务端。 
  
 这里使用rsync自带的来启动服务端 
  
 如:rsync --daemon --config=/home/leyewen/etc/rsync/rsyncd.conf 
  

 1、配置rsyncd.conf如下:  
  
 

     
 
 
 

   # 全局参数 
  
 # 运行rsync守护进程的用户 
  
 uid = root      
  
 # 运行rsync守护进程的组 
  
 gid = root      
  
 # 不使用chroot 
  
 use chroot = no     
  
 # 最大连接数为4 
  
 max connections = 2     
  
 # 是否检查口令文件的权限 
  
 strict modes = yes     
  
 # 默认端口873 这里最好改成1024以上端口 并且 
  
 port = 873      
  
 #pid文件的存放位置 
  
 pid file = /usr/local/rsync/rsyncd.pid  
  
 #锁文件的存放位置 
  
 lock file = /usr/local/rsync/rsync.lock  
  
 log file = /usr/local/rsync/log/rsyncd.log 
  
 motd file = /usr/local/rsync/rsyncd.motd 
  

 # 模块参数 
  
 # 这里是认证的模块名,在client端需要指定 
  
 [backup]      
  
 # 需要做镜像的目录 不可缺少 
  
 path = /home/rsync/data    
  
 # 这个模块的注释信息 
  
 comment = My Backup     
  
 # 可以忽略一些无关的IO错误 
  
 ignore errors      
  
 # 只读 
  
 read only = no      
  
 # 不允许列文件 
  
 list = no      
  
 # 认证的用户名 如果没有这行则表明是匿名 此用户与系统无关---> 
  这里的auth users =与rsync.pass中的用户名一致 
  
 auth users = sensor    
  
 # 密码和用户名对比表,密码文件自己生成 
  
 secrets file = /usr/local/rsync/rsync.pass  
  
 # 允许主机 
  
 # hosts allow = 192.168.1.1,10.10.10.10   
  
 # 禁止主机 
  
 # hosts deny = 0.0.0.0/0    
  
 #transfer logging = yes        
  




 2、配置rsync密码(在上边的配置文件中已经写好路径) /usr/local/rsync/rsync.pass  (名字随便写,只要和上边配置文件里的一致即可),格式(一行一个用户) 
  
 

   账号:密码 
  
 vi /usr/local/rsync/rsync.pass    
  
 例子: 
  
sensor:passwd 
  
 权限:因为rsync.pas存储了rsync服务的用户名和密码,所以非常重要。要将rsync.pas设置为root拥有, 且权限为600。 
  
 chmod 600 /usr/local/rsync/rsync.pass    
  

 3、启动rsync服务端 
  
 rsync --daemon --config=/usr/local/rsync/rsyncd.conf 
  


 客户端: 
  
 rsync -avz --progress --delete --port=873  
  --password-file=/home/leyewen/etc/rsync/rsync-client.pass --exclude=.svn/ --exclude=WEB-INF/ /home/leyewen/svn/* leyewen@192.168.1.112::back 
  

 这里同步本地的svn下所有文件到服务端配置的备份目录 
  
 --exclude=.svn/ --exclude=WEB-INF/ 过滤svn和WEB-INF目录 
  

 配置说明 
  
 

     
 
 
 

   rsync -avz /home/rsync/data/* sensor@211.144.76.142::backup 
 
 
 

     
 
 
 
rsync -avz 同步目录|文件 用户名@IP::模块名
 
 

     
 
 
 

   -a 参数,相当于-rlptgoD,-r 是递归 -l 是链接文件,意思是拷贝链接文件;-p 表示保持文件原有权限;-t 保持文件原有时间;-g 保持文件原有用户组;-o 保持文件原有属主;-D 相当于块设备文件; 
  
 -z 传输时压缩; 
  
 -P 传输进度; 
  
 -v 传输时的进度等信息,和-P有点关系,自己试试。可以看文档; 
  
 

     
 
 
 

     
 
 
 

   另外: 
 
 
 

   定制欢迎信息文件rsyncd.motd  
 
 
 

   如: 
 
 
 

   [root@211 rsync]# cat rsyncd.motd 
  
 +++++++++++++++++++++++++++ 
  
 +       wellcome rsyncd    + 
  
 +++++++++++++++++++++++++++ 
  
 

     
 
 
 

      
 
 
 

     
 
 
 

   注意: 
 
 
 

     
 
 
 
--password-file=/home/leyewen/etc/rsync/rsync-client.pass 
 
 
 

     
 
 
 

   通过--password-file指定密码文件, 
 
 
 

   1,注意修改.pass 文件为chmod 600


2,rsync 服务端格式为usrname:pwd  但客户端格式为pwd ,所以这里容易出错!!