rysnc 是一个数据镜像及备份工具.具有可使本地和远程两台主机的文件.目录之间.快速同步镜像.远程数据备份等功能.在同步过程中.rsync是根据自己独特的算法.只同步有变化的文件.甚至在一个文件里只同步有变化的部分.所以可以实现快速的同步数据的功能.. 详细的信息请参考官方wiki
1 下载ryscn 源码包,并安装该软件
rsync-3.0.8.tar.gz
#tar xvf rsync-3.0.8.tar.gz
#cd rsync-3.0.8
#./configure --prefix=/usr
#make && ,make install
2 配置rsync ,创建rsync 有三个配置文件文件,分别是:
rsyncd.conf 为rsync 的主配置文件
rsyncd.motd 为rsync client 在进行复制文前,返回一些提示信息
rsyncd.secrets 为rsync 创建用户对应的密码文件
#mkdir /etc/rsyncd
#cd /etc/rsyncd
#touch rsyncd.conf
#touch rsyncd.motd
#touch rsyncd.secrets
3 应为rsync 是被超级守护进程xinetd 管理着,首先先修改超级守护进程中配置文件,修改后并重启xinetd
把disable = yes 修改为
disable =no
4 配置rsync 的主配置文件
#cd /etc/rsyncd
#vim rsyncd.conf
uid = nobody
gid = nobody
use chroot = yes
read only = yes
address=192.168.3.143
port=873
max connections = 5
timeout = 300
motd file =/etc/rsyncd/rsyncd.motd
pid file = /var/run/rsyncd/rsyncd.pid
log file = /var/log/rsyncd/rsyncd.log
lock file = /var/run/rsyncd/rsyncd.lock
hosts allow =192.168.3.139
hosts deny=*
transfer logging = yes
secrets file = /etc/rsyncd/rsyncd.secrets
#auth users = root
list = yes
[home]
path = /root/test
comment = product server home
exclude = EtnetChinaUI/public
[Frank]
path = /home/Frank
comment = product server www
exclude = logs/
注:auth users 在服务器上存在的真实的系统用户,如果想用多个用户可以用,号隔开
比如auth users = Frank,sanday
5 修改rsyncd.secrets
在该文件中每一行都是对应的用户名及密码,格式如下
username:password
#chmod 600 rsyncd.secrets
注:1 为了安全,文件属性必需为只读文件
2 为了安全再次设置的系统用户的密码,不能写系统中用户的真正的密码
6 配置rsyncd.motd 文件
该文件是定义rsync服务器的信息,也就是用户的登录信息,当然该处也不是必需的
7 rsync 的主配置文件的详解
A 全局定义
# 注:服务器在传输文件时要用哪个用户和用户组来执行,默认情况下是nobody,当用默认用户和用户组,可能会遇到权限问题,当然您也可以指定root用户来解决权限问题
uid = nobody
gid = nobody
#注:用chroot,在传输文件之前,服务器守护程序在将chroot到文件系统中的目录中,这样做的好处是可能保护系统被安全漏洞侵袭,缺点是需要超级用户权限.另外在对符号连接文件,将会排除在外.也就是说,在rsnc服务器上.如果用符号连接.在备份服务器上运行的客户端的同步数据时,只会把符号连接的名同步下来,并不会同步符号连接我额内容
use chroot = yes
#注: read only 是只读选择,机
read only = yes
#指定服务器的IP地址
address=192.168.3.143
#定义rsync 运行的端口,默认是873
port=873
#设置客户端最多连接数
max connections = 5
#设置客户端连接超时时间
timeout = 300
#注: motd file 是定义服务器上的信息,需要卸载rsyncd.motd 文件内容,当用户登录时看到该信息
motd file =/etc/rsyncd/rsyncd.motd
#rsync 的进程文件
pid file = /var/run/rsyncd/rsyncd.pid
#rsync的日志文件
log file = /var/log/rsyncd/rsyncd.log
#rsync的锁文件,防止多次启动rsync
lock file = /var/run/rsyncd/rsyncd.lock
#注: rsync 的传输文件的日志
transfer logging = yes
#设置允许的客户端
hosts allow =192.168.3.139
#设置不允许的客户端
hosts deny=*
#用户的密码文件
secrets file = /etc/rsyncd/rsyncd.secrets
#auth users = root
list = yes
B 模块定义
该处主要定义的是系统中哪个目录文件要被同步,每个模块都要以[Filename] 形式,该处定义的名字就是在rsync 客户端上看到的名字,该处和samba 比较类似.而真正要服务器同步的数据是通过path来指定.每个模块都要指定认证用户,密码文件,当然您也可以不指定
#模块为其提供了一个连接的名字
[home]
#指定文件目录所在位置,该处是必须指定的
path = /root/test
#认证用户是root ,是必须在服务器上存在的用户
auth users= root
#list 是把rsync 服务器上提供同步数据的目录在服务器上模块是否显示出来.默认是yes .如果是为了安全,可以把其设置为no
list = yes
#注释可以自己定义
comment = product server home
#密码文件
secrets file =/etc/rsyncd/rsyncd.secrets
#exclude 是排除在/root/test 目录下面的EtnetChinaUI/public 文件,当然如果要排除多个目录则需要在多个目录中用空格分开
exclude = EtnetChinaUI/public
[Frank]
path = /home/Frank
comment = product server www
exclude = logs/
8 启动rsync 服务
首先要产看iptables 是否关闭,如果iptables 未关闭,其可以先关闭iptables 当然你也可以在iptables 中添加相关的防火墙规则