rsync 配置方法

参考文献:http://bbs.linuxtone.org/thread-22106-1-1.html

一.   个人心得:

rsync一般都是用c/s模式,而同步一般都是由cs发出请求,s端只负责配置同步文件模块和启动rsync –daemon 在后台运行,接收c端的请求

二.   rsync是什么?
它是Linux系统下文件同步可数据传输的工具,采用rsync算法使客户机与服务器,主服务器与备份服务器数据同步。rsync也能实现中断后恢复传输。rsync支持增量备份。

三.   rsync4种模式
   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 \

test@10.10.10.216::ftp /var/ftp/pub --password-file=/root/rsync.pass.slave 

(客户命令示例

/usr/local/bin/rsync -vzrtopg --delete --exclude "logs/" --exclude "conf/ssl.*/" --progress backup@202.99.11.120::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.*/目录下的文件进行备份。

backup@202.99.11.120::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目录下是否发生变化


转载于:https://blog.51cto.com/netkailong/1085791