rsync数据同步配置

环境配置

操作系统:centos6.4_64bit

A服务器IP:192.168.6.128

B服务器IP:192.168.6.129

以A服务器为基准,将A服务器文件同步到B服务器。

步骤如下:

开始配置A服务器

1、在A服务器安装rsync

tar -xvf rsync-3.1.1.tar.gz

cd rsync-3.1.1

configure --prefix=/usr/local/rsync

make && make install

2、配置文件

在/etc/下新建rsyncd.config(默认/etc/下没有这个文件)内容如下:

uid=nobody
gid=nobody
use chroot=no
max connections=10
strict modes=yes
pid file=/var/run/rsyncd.pid
lock file=/var/run/rsync.lock
log file=/var/run/rsync.log
[files]
path=/data/files  #要同步数据的目录
comment=files
ignore errors
read only=no
write only=no
hosts allows=*
#hosts deny=192.168.6.129
list =false
uid=root
gid=root
auth users=admin #同步时用的账户
secrets file=/etc/rsyncserver.pass #密码文件

3、/etc/下新建密码文件rsyncserver.pass,格式:username:password

admin:admin

4、给密码文件赋予600权限

chmod 600 /etc/rsyncserver.pass

5、启动rsync服务

/usr/local/rsync/bin/rsync --daemon --config=/etc/rsyncd.conf

A服务器配置完毕!

开始配置B服务器

1、B服务器安装rsync,方法同A服务器

2、B服务器只需配置密码文件/etc/rsyncserver.pass,密码要与A服务器密码相同,格式:password

3、执行同步命令

/usr/local/rsync/bin/rsync -vzrtopg --delete --progress --exclude "*access*" admin@192.168.6.128::files /data/files --password-file=/etc/rsyncserver.pass

说明:

v:详细模式输出

z:传输是对备份的文件进行压缩处理

r:对子目录进行递归处理

t:保持文件时间信息

o:保持文件属主信息

p:保持文件权限信息

g:保持文件属组信息

--delete:以A服务器为基准同步

--progress:显示同步过程

--exclude:排除不需要传输的文件类型

admin@192.168.6.128::files  files表示rsyncd.config配置文件中配置的files模块

/data/files:表示将文件同步到本地的/data/files目录

--password-files:指定密码文件

 

总结:

rsync进行的为完整或增量备份。这样搭建的文件同步方式有2个缺点:

1、假如在B服务器上新建的文件,执行同步命令后不能同步到A服务器上,也就是说B服务器上的文件始终是大于等于A服务器上的文件。

(同步命令中加入--delete参数,在执行过程中,会将A服务器上不存在的文件删除;如果不加此参数,则不会删除也不会同步到B服务器)

2、必须将同步命令做成脚本,加入定时任务中,在特定时间执行同步操作,不能进行实时同步备份。

想解决第一个问题,就要用到unison软件。

想解决第二个问题,就要用到rsync+inotify结合使用

 

posted @ 2015-04-24 13:34  杯中红茶  阅读(201)  评论(0编辑  收藏  举报