首页 > 代码库 > CentOS 6.5 inotify+rsync 部署

CentOS 6.5 inotify+rsync 部署

Rsync是一款远程同步软件,在同步文件(文件和目录)的时候可以保持原文件的权限、修改时间、包括链接文件也可以同步。

这个东西应用在什么地方呢?不管你是什么业务,如果你有几十台以上的服务器,并且这些服务器需要实时保持拥有的文件一致,那你就会用到这个工具。比如你有几十台web服务器,网页文件会经常修改,如何批量同步这些新的网页文件到所有服务器上呢?


Inotify又是什么呢?它是一种通知机制,随着时间的推移,你的原文件夹可能越来越大,如果每次同步都把整个目录扫描一遍那简直不敢想象,inotify就是内核提供的一种功能,可以实现对目录的监控,如果该目录有任何文件的删除、修改、新建它都会捕捉到这一动作,并可以把这一事件发送给其他应用程序。


主机名IP说明
Linux01.localhost
10.10.6.12

Linux02.localhost10.10.6.15
运行rsync守护进程,作为Server端,接收推送。



安装Rsync

实现原理:

rsync采用的是C/S结构,不过S端是服务器端,运行rsync的守护进程,C端通过命令来向S端推送文件。

安装:

rpm -qa rsync    #检查是安装了rsync
rpm -e rsync     #如果安装了,那么就删除,系统自带的版本比较低
wget https://download.samba.org/pub/rsync/rsync-3.1.2.tar.gz --no-check-certificate

技术分享

技术分享

tar -xzf rsync-3.1.2.tar.gz
cd rsync-3.1.2
./configure --prefix=/usr/local/rsync --disable-ipv6

技术分享

技术分享

如果不指定安装目录,则默认会安装到如下目录中:

技术分享

make && make install


设置账户和目录:

groupadd -r rsync                         #创建rsync系统组
useradd -g rsync rsync -r -s /sbin/login  #创建rsync系统账号并加入到rsync组

技术分享

mkdir backup                #创建用于接收推送文件的目录
chown rsync.rsync ./backup  #设置改目录的属主和属组位rsync

技术分享

编辑配置文件:编译安装后它使用的配置文件默认位置为/etc/rsyncd.conf,但是默认这个文件并不存在,需要你手动建立。

touch /etc/rsyncd.conf    #守护进程使用的配置文件,必须是rsyncd.conf
touch /etc/rsyncd.passwd  #用户名和密码文件,这个名字可以随便
chmod 600 /etc/rsyncd.passwd #修改密码文件权限

技术分享

vim /etc/rsyncd.conf   #编辑配置文件
#[全局配置]
# 服务器IP和监听端口号
address = 10.10.6.15
port = 873
# 服务器传输文件时发给哪个用户和哪个组来执行。
pid = rsync
gid = rsync
# 在文件传输之前,服务器守护进程将chroot到指定的PATH,优点是实时特殊的保护,缺点是需要roo# t权限
use chroot = no
# 最大并发数
max connection = 10
# 超时时长
timeout = 300
# 锁、日志和pid文件位置
lock file = /var/run/rsync.lock
log file = /var/run/rsync.log
pid file = /var/run/rsync.pid
# 消息文件,当客户端连接到服务器是该文件的内容将会显示给客户端
motd file = /etc/rsyncd.mod
# 存放虚拟用户和密码的文件
secrets file = /etc/rsyncd.passwd
# 允许的网段
hosts allow = *
# 不允许的网段
#hosts deny = 0.0.0.0/32
# 是否允许客户上传文件,true不允许,false允许。
read only = false

#[模块配置],所谓模块配置其实就是要使用的目录,客户端推送文件到服务器端的哪个目录
# 需要接收同步的目录
path = /usr/local/backup
# 是否忽略错误
ignore errors
list = false
# 虚拟的用户,也就是客户端用那个用户来连接服务器,可以用空格或者逗号分隔多个用户,该用户
# 必须在上面secrets file = /etc/rsyncd.passwd文件中
auth users = rsync_backup
# 该模块的描述,客户端连接后会显示给客户端
commment = hello



rsync可以以守护进程的方式运行,也可以由xinetd来激活,如果你的服务器负载比较高建议rsync以独立的守护进程方式来运行。区别在于,如果以独立的守护进程方式运行,它会一直监听端口随时准备接受文件推送,如果由xinetd这个超级进程来管理的话,那没有推送的时候rsync是休眠状态,当有推送的时候,由xinetd这个超级进程激活rsync,对于繁忙的服务器来说这种方式会有额外开销。

本文出自 “小恶魔的家” 博客,请务必保留此出处http://littledevil.blog.51cto.com/9445436/1870338

CentOS 6.5 inotify+rsync 部署