下载rsync-3.1.1.tar.gz 下载地址 http://pan.baidu.com/s/1gdtds3L

安装rsync

[root@localhost ~]# tar zxvf rsync-3.1.1.tar.gz 

[root@localhost ~]# cd rsync-3.1.1

[root@localhost rsync-3.1.1]# make && make install

rsync四种模式

  1. 本地shell模式:主要用于复制指定目录到另一个目录,例如

    [root@localhost ~]# rsync -av rsync-3.1.1 /tmp

2.远程shell模式:把指定的本地目录复制到另一个系统中,例如

[root@localhost ~]# rsync -av rsync-3.1.1 192.168.5.206:/tmp

root@192.168.5.206's password: 

如果以root用户身份执行此命令,需要输入192.168.5.206的root密码

3.rsync列表模式:查看远程主机192.168.5.206的/tmp目录下内容

[root@localhost ~]# rsync -av rsync-3.1.1 192.168.5.206:/tmp

root@192.168.5.206's password: 

需要输入192.168.5.206root密码

4.服务器模式:rsync在后台启用了一个守护进程,这个守护进程在rsync服务器端永久运行,用于接收文件传输请求,客户端既可以把文件发送给守护进程,也可以向守护进程请求文件,实例

把A系统的/data备份到系统/backupdata

操作系统:RHEL6.2

内核版本:2.6.32-220.el6.x86_64

A系统IP:192.168.5.205 (rsync服务器端)

B系统IP:192.168.5.206 (rsync客户端)

1)在A系统安装rsync

[root@localhost ~]# tar zxvf rsync-3.1.1.tar.gz 

[root@localhost ~]# cd rsync-3.1.1

[root@localhost rsync-3.1.1]# make && make install

2)创建rsync的配置文件, 默认没有此文件,需要手动建立,内容如下

[root@localhost ~]# vim /etc/rsyncd.conf    

   

uid = nobody            

gid = nobody

use chroot = no           

max connections = 0     #最大并发连接数量,默认0,无限制

strict modes = yes      #是否检查口令的文件的权限,yes为检查

pid file =  /var/run/rsyncd.pid  #指定rsync守护进程对应的pid文件路径

locak file = /var/run/rsync.lock  #指定支持max connections的锁定文件,默认                 log file = /var/log/rsyncd.log     #指定了rsync的日志传输文件路径

[ixdba]                            #定义一个模块的开始,ixdba就是该模块名称

path=/data                    #指定需要备份的文件或目录

comment = ixdba file            

ignore errors                #忽略一些无关的I/O错误

read only = no                #no表示客户端可以上传文件,yes表示只读

write only = no                #no表示客户端可以下载文件,yes表示不能下载

hosts allow = *                #可以连接rsync服务器的主机,*表示允许任何

hosts deny = 192.168.5.x        #设置禁止连接rsync服务器的主机 

list = false                    #false不列出使用的模块列表,true列出

uid = root                        

gid = root

auth users = backup            #指定连接该模块的用户名,与系统用户没有任何关系

secrets file = /etc/server.pass #用户名:密码的文件,系统默认没有此文件,需要手动创建

3)创建/etc/server.pass                                  

[root@localhost ~]# vim /etc/server.pass 

backup:ixdba123                   #用户名:密码

[root@localhost ~]# chmod 600 /etc/server.pass 

4)在A系统上启动rsync守护进程

[root@localhost ~]# /usr/local/bin/rsync --daemon

[root@localhost ~]# ps -ef | grep rsync

root      7874     1  0 16:02 ?        00:00:00 /usr/local/bin/rsync --daemon

5)在B系统上配置rsync

安装rsync

[root@localhost ~]# tar zxvf rsync-3.1.1.tar.gz 

[root@localhost ~]# cd rsync-3.1.1

[root@localhost rsync-3.1.1]# make && make install

创建密码文件

[root@localhost ~]# vim /etc/server.pass 

ixdba123                          #密码

[root@localhost ~]# chmod 600 /etc/server.pass

执行操作

[root@localhost ~]# /usr/local/bin/rsync -vzrtopg --delete --progress 

--exclude "*access*" --exclude "*debug*" backup@192.168.5.205::ixdba /backupdata --password-file=/etc/server.pass 

这条指令中的参数含义:

-vzrtopg  

v是--verbose 即详细模式输出;z表示 --compress 即在传输时对备份的文件进行压缩处理;

r表示--recursive 对子目录以递归模式处理;t即--times,保持文件时间信息

o即--owner保持文件属主信息;p即--perms,保持文件的权限;g即--group保持文件的属组信息

--delete

指定以rsync服务器端为基准进行数据镜像同步

--progress 用于显示数据镜像同步过程

--exclude 用户拍出不需要传输的文件类型

backup@192.168.5.205::ixdba 

表示对服务器192.168.5.206中的ixdba模块进行备份,backup表示使用这个用户

/backupdata 指定备份文件在客户端上的存放路径

--password-file=/etc/server.pass

指定客户机上存放密码文件的位置

6)定时备份策略,如设定客户端rsync每天凌晨3:30执行镜像备份操作

在B服务器上执行crantab -e ,添加如下信息即可

[root@localhost ~]#crontab -e

30 3 * * * /usr/local/bin/rsync -vzrtopg --delete --progress 

--exclude "*access*" --exclude "*debug*" backup@192.168.5.205::ixdba /backupdata --password-file=/etc/server.pass 

二、通过rsync+inotify实现数据的实时备份