标签:
环境配置
操作系统: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结合使用
标签:
原文地址:http://www.cnblogs.com/czrwxw/p/4453236.html