CentOS利用inotify rsync实现文件同步

来源:http://www.prospettivedarte.com 作者:计算机教程 人气:72 发布时间:2019-11-09
摘要:在上篇博文《rsync实现Linux服务器数据同步》 http://www.linuxidc.com/Linux/2013-04/82804.htm  中,我们讲了rsync实现文件同步的方法与特点,rsync在这方面有着很多优点,但也并非完美无缺。比如

在上篇博文《rsync实现Linux服务器数据同步》 http://www.linuxidc.com/Linux/2013-04/82804.htm 中,我们讲了rsync实现文件同步的方法与特点,rsync在这方面有着很多优点,但也并非完美无缺。比如,rsync不能实时地监控数据变化,来实现实时同步的目的,虽然可以使用计划任务的方式定时触发同步,但两次触发动作一定会有时间差,对于实时性要求高的环境,这是不可接受的。另外,rsync每次开始时都需要扫描目录里面的所有文件,然后进行差量传输,如果目录里面的文件达到十万,甚至百万级别时,整个操作将非常耗时,而发生改变的可能只是其中的一两个文件,这样无疑是很低效率的行为。

1、环境部署

在了解了rsync 的不足之处后,我们再来了解一下inotify。Inotify是linux系统本身的一种文件系统事件的监控机制,通过它可以监控到文件系统的变化,如:添加、删除、修改等各种细微的动作。利用这个内核接口,第三方软件可以监控文件系统下文件的各种变化情况,Inotify-tools就是这样一款软件,当它与rsync结合使用时,可以弥补rsync所存在的缺陷,达到最好的效果。

inotify-master  10.10.6.208

操作环境如下,服务器A的/data目录为源,对其中的内容做任何更新都将即时同步到B和C服务器中的/test目录。

inotify-slave   10.10.6.149

图片 1

 

服务器B和C的 rsync.conf配置:

2、两台服务器都安装rsync


yum install -y rsync

uid=root   
gid=root   
use chroot=no                   
max connections=20               
strict mode =yes                 
pid file=/var/run/rsyncd.pid     
lock file=/var/lock/rsync.lock   
log file=/var/log/rsyncd.log     

3、inotify-slave部署

[model1]                       
path=/data/                     
comment=Test             
ignore errors                 
read only=no                     
write only=no                   
hosts allow=192.168.0.10         
hosts deny=*                     
list=false                                       
auth users=alex                 
secrets file=/etc/rsyncd.pass     

新建rsync用户及模块目录并更改其用户组


useradd rsync -s /sbin/nologin       #添加rsync用户
mkdir /usr/local/backup            #创建rsync daemon工作模式的模块目录
chown rsync.rsync /usr/local/backup    #更改模块目录的用户组

配置完成后,启动服务器的rsync守护,并将rsync服务加入到自启动文件中。
echo “/usr/local/bin/rsync –daemon “>> /etc/rc.local
注:关于rsync配置的详细介绍,可参考我博客中上一篇的rsync博文。

编写rsync配置文件/etc/rsyncd.conf
vi /etc/rsyncd.conf

 

strict modes =yes #是否检查口令文件的权限
port = 873 #默认端口873
log file = /var/log/rsyncd.log #日志记录文件 原文中有的,我没有使用,日志文件
pid file = /var/log/rsyncd.pid #运行进程的ID写到哪里

 

[test]
max connections = 10 #客户端最大连接数,默认0(没限制)
uid = rsync #指定该模块传输文件时守护进程应该具有的uid
gid = rsync #指定该模块传输文件时守护进程应该具有的gid
path = /usr/local/backup/ # 需要做备份的目录
ignore errors # 可以忽略一些无关的IO错误
read only = no #no客户端可上传文件,yes只读
write only = no #no客户端可下载文件,yes不能下载
hosts allow = * #充许任何主机连接
hosts deny = 10.5.3.77 #禁止指定的主机连接
auth users = rsync_backup # 虚拟用户
secrets file = /etc/rsync.password # 虚拟用户口令文件位置

本文由皇牌天下投注网发布于计算机教程,转载请注明出处:CentOS利用inotify rsync实现文件同步

关键词:

最火资讯