rsync 配置方法
参考文献:http://bbs.linuxtone.org/thread-22106-1-1.html
一. 个人心得:
用rsync一般都是用c/s模式,而同步一般都是由c向s发出请求,s端只负责配置同步文件模块和启动rsync –daemon 在后台运行,接收c端的请求
二. rsync是什么?
它是Linux系统下文件同步可数据传输的工具,采用rsync算法使客户机与服务器,主服务器与备份服务器数据同步。rsync也能实现中断后恢复传输。rsync支持增量备份。
三. rsync有4种模式
1.本地模式。
2.远程shell模式
3.查询模式
4.C/S模式
我们来安装rsync测试一下吧, 安装很简单的,2种安装方法:
1. 安装rsync
a) yum –y install rsync
b) tar xvf rsync-3.0.9.tar.gz
cd rsync-3.0.9
./configure
make && make install
c) rsync --help 查看选项
-v, --verbose ##详细模式
-r, --recursive ##递归
-u, --update ##更新
-t, --times ##保持时间
-z, --compress ##启用压缩
-o, --owner ##保持属主
-g, --group ##保持属组
-p, --perms ##保持权限
--delete ##以前边目录为准,同步
--progress ##显示传输过程
--exclude=PATTERN ##不同步模式匹配的文件
--password-file=FILE ##密码文件位置
2. rsync c/s模式配置
Master:10.10.10.216
Slave:10.10.10.217
a) 在master上配置rsync
1. vim /etc/rsyncd.conf
uid = nobody ##全局配置开始,指文件传输时模块进程的uid
gid = nobody ##同上gid
use chroot = no ##是否让进程离开工作目录
max connections = 4 ##最大并发数
syslog facility = local5 ##记录日志的facility
pid file = /var/run/rsyncd.pid ##pid位置
[ftp] ##模块配置开始
path = /var/ftp/pub ##需要备份的目录,必须指定,
comment = whole ftp area ##注释
read only = no ##客户端是否只读
write only = no ##是否只能写
hosts allow = * ##允许同步主机
hosts deny = 192.168.0.0/24 ##禁止访问的主机
list = yes ##是否允许列出所有模块
uid = root
gid = root
auth users = test ##可以连接该模块的user
secrets file=/etc/rsync.pass ##密码文件在哪,需要自己建立,
2. 建立密码文件 /etc/rsync.pass 如下格式,并确保权限为600或400
test:11111
3. 启动守户进程
rsync --daemon ##启动守护进程
netstat -tlnp |grep rsync 查看是否启动,查看监听端口
b) slave端配置rsync
1. 安装rsync 看上方
2. 不需要配置文件,直接运行命令即可,为了不用输入密码,建立密码文件,并确保权限为600
该处的密码为master的rsyncd.conf 文件目录模块中auth users = slave 用户的密码,要跟secrets file = /etc/rsync.pass中的密码保持一致(此处的用户名和密码,可以是虚拟的,只要一致就行)
echo “11111” > /root/rsync.pass.slave
3. rsync的选项过多,我们把它写到一个脚本中,需要的时候运行即可
vi /root/rsync.sh
#!/bin/bash
/usr/local/bin/rsync -vzrtogpg --delete --progress \
[email protected]::ftp /var/ftp/pub --password-file=/root/rsync.pass.slave
(客户命令示例
/usr/local/bin/rsync -vzrtopg --delete --exclude "logs/" --exclude "conf/ssl.*/" --progress [email protected]::www /backup/www/ --password-file=/etc/rsync.pass
上 面这个命令行中-vzrtopg里的v是verbose,z是压缩,r是recursive,topg都是保持文件原有属性如属主、时间的参数。 --progress是指显示出详细的进度情况,--delete是指如果服务器端删除了这一文件,那么客户端也相应把文件删除,保持真正的一致。 --exclude "logs/" 表示不对/www/logs目录下的文件进行备份。--exclude "conf/ssl.*/"表示不对/www/conf/ssl.*/目录下的文件进行备份。
[email protected]::www 表示对该命令是对服务器202.99.11.120中的www模块进行备份,backup表示使用backup来对该模块进行备份。
--password-file=/etc/rsync.pass来指定密码文件,这样就可以在脚本中使用而无需交互式地输入验证密码了,这里需要注意的是这份密码文件权限属性要设得只有root可读。)
4. 测试
在master的目录中添加文件,在slave上执行rsync同步脚本,看能否同步
cp /etc/passwd /var/ftp/pub
slave:sh /root/rsync.sh 看/var/ftp/pub目录下是否发生变化