浅谈Rsync+Inotify实时同步
Rsync是Unix/Linux旗下的一款应用软件,利用它可以是多台服务器数据保持同步一致性,第一次同步时rsync会复制全部内容,但在下次只传输修改过的文件
Rsync在传输数据的过程中可以实行压缩及解压缩的操作,因此可以使用更少的贷款,可以很容易做到保持原来文件的权限,时间,软硬链接等
在同步备份数据时,默认情况下,rsync通过其独特的“quick check”算法,它仅能同步大小或者最后修改时间的发生变化的文件或目录,当然可以根据权限,属主等属性的变化同步,但需要指定相应的参数,甚至可以实现只同步一个文件里有变化的内容部分,所以,可以实现快速的同步备份数据
【Rsync服务端】-源端
[root@Rsync-server ~]# yum install -y rsync xinetd
[root@Rsync-server ~]# vim /etc/xinetd.d/rsync
disable = no uid = 0 #这个uid和gid要注意,同步文件的路径一定要与其属主属组保持一致
gid =
port =
address = 192.168.2.140 #本地IP地址
use chroot = no
max connections = 200 #最大连接
timeout =
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
hosts allow=192.168.2.0/255.255.255.0 #模块允许通过的IP,也就是说允许推送拉去数据的IP地址范围 [Web]
read only = no #read only为no的即为上传,yes则为只读
write only = no #客户端可下载文件,yes则不能下载
list = yes #是否提供资源列表
path = /var/www/html/ #本地需要同步的目录
auth users = test #登陆系统所使用虚拟用户名
secrets file = /etc/rsync.pas #密码文件存放的位置(ps:权限需要600)
[root@Rsync-server ~]#vim /etc/rsync.pas
test:test123
[root@Rsync-server ~]# chmod 600 /etc/rsync.pas
[root@Rsync-server ~]# /etc/init.d/xinetd start
[root@Rsync-server ~]# netstat -anput | grep xinetd
tcp 0 0 :::873 :::* LISTEN 3113/xinetd
【客户端】
客户端不需要做什么配置,只需要安装rsync并启动,同时将Rsync源端秘钥拿过来即可
[root@localhost ~]# cat /etc/rsync.pas
test123
root@localhost web]# rsync -avz /var/web/ test@192.168.2.140::Web --password-file=/etc/rsync.pas #推送,将本地/var/web/文件推送到rsync端
[root@localhost ~]# rsync -avz test@192.168.2.140::Web /var/web/ --password-file=/etc/rsync.pas #拉去,将rsync数据源端拉取到本地/var/web目录
【Rsynx实时同步部配置-inotfy】
Inotify是一个Linux特性,它监控文件系统操作,比如读取,写入和创建。Inotfy反应灵敏,用法非常简单,并且比cron任务的繁忙轮训高效的多,
Rsync安装完成之后,需要安装inotfy文件检查软件,同事为了同步的时候不需要输入密码,这样,可以使用ssh免秘钥的方式进行传输同步
[root@localhost ~]# tar zxvf inotify-tools-3.14.tar.gz
[root@localhost ~]# cd inotify-tools-3.14
[root@localhost inotify-tools-3.14]# ./configure && make && make install
[root@localhost inotify-tools-3.14]# vim auto_inotify.sh
#!/bin/sh
src=/var/web/
des=/var/www/html/
ip=192.168.2.140
inotifywait -mrq --timefmt '%d/%m/%y-%H:%M' --format '%T %w%f' -e modify,delete,create,attrib ${src} | while read file
do
/usr/bin/rsync -aP --delete $src test@$ip::Web --password-file=/etc/rsync.pas
done
最后我们可以将其放到后台运行这个脚本nohup sh auto_inotify.sh
在客户端端目录新建或者删除,源数据端都会实时进行相关操作。
浅谈Rsync+Inotify实时同步的更多相关文章
- rsync+inotify实时同步环境部署记录
随着应用系统规模的不断扩大,对数据的安全性和可靠性也提出的更好的要求,rsync在高端业务系统中也逐渐暴露出了很多不足.首先,rsync在同步数据时,需要扫描所有文件后进行比对,进行差量传输.如果文件 ...
- rsync+inotify实时同步方案
rsync+inotify实时同步,inotify可以实时监控本地文件或目录变化,当检测到本地文件变化,执行rsync同步命令,将变化的文件同步到其他服务器节点. 1.配置环境 3.在服务节点1.服务 ...
- CentOS6.5实现rsync+inotify实时同步
参考博文: 参考1:CentOS6.5实现rsync+inotify实时同步 参考2:inotify-tools+rsync实时同步文件安装和配置 CentOS 6.3下rsync服务器的安装与配置 ...
- 配置rsync+inotify实时同步
与上一篇同步做 配置rsync+inotify实时同步 1:调整inotify内核参数 在linux内核中,默认的inotify机制提供三个调控参数:max_queue_events.max_user ...
- linux设置rsync+inotify实时同步文件
linux设置rsync+inotify实时同步文件 应用场景: 同步接收方:test01 接收目录:/opt/software/test/a/ 同步发起方:test02 同步目录:/opt/so ...
- (转)rsync+inotify实时同步
原文:http://lxw66.blog.51cto.com/5547576/1331048 声明:rsync inotify 需要逆向思考,当只做rsync不实时同步时,我们一般是从rsync服务端 ...
- rsync+inotify实时同步
!!!在安装前要先确保,rsync daemon服务配置成功,在安装inotify-tools前先确认你的linux内核是否达到了2.6.13,并且在编译时开启CONFIG_INOTIFY选项,也可以 ...
- centos 6 rsync+inotify 实时同步
主机名.ip: server 172.31.82.184 client 172.31.82.185 需求: 1.server端 ”/data/server“ 做为client端 “/data/cli ...
- rsync + inotify 实时同步
1. 前言 2 台 nginx 需要做集群, 静态文件和php文件都在nginx服务器本地. 有三种方案: (1)NFS (2)Rsync + inotify (3)共享存储服务器 第一种:当 nfs ...
随机推荐
- 前端 ---JS中的面向对象
JS中的面向对象 创建对象的几种常用方式 1.使用Object或对象字面量创建对象 2.工厂模式创建对象 3.构造函数模式创建对象 4.原型模式创建对象 1.使用Object或对象字面量创建对象 ...
- Mysql 的安装(压缩文件)和基本管理
MySql安装和基本管理 本节掌握内容: mysql的安装.启动 mysql破解密码 统一字符编码 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle ...
- su命令
作用: 切换 用户 选项: -:可以更改当前目录为切换用户的家目录 使用: # 切换用户,当前所在用户目录不变 su 用户名 # 切换用户,当前所在目录改为切换对象的家目录 /home/用户名 su ...
- restful中的分页
普通分页 普通分页类似于Django中的分页 源码 class PageNumberPagination(BasePagination): """ A simple pa ...
- 关闭VirtualBox虚拟机的时钟同步
原文链接:关闭VirtualBox虚拟机的时钟同步 在VirtualBox的虚拟机上默认虚拟机的时间是会和物理机同步的,但可以通过下面的命令来关闭 1. 首先查看虚拟机列表 VBoxManage li ...
- Confluence 6 任务的类型
下面是有关你可以调整的计划任务列表. Confluence 备份(Back Up Confluence) 对 Confluence 站点执行备份操作. 每集群(Per cluster) At 2am ...
- Confluence 6 在数据源连接中启用校验查询
确定 Confluence 在数据库连接池中校验数据库连接: 停止 Confluence. 编辑 <installation-directory>/conf/server.xml 文件(或 ...
- Java之动手动脑(三)
日期:2018.10.12 星期五 博客期:017 这次留了两个动手动脑作业!我需要一个一个来说!先说第一个吧! Part 1 :随机生成1000个随机数 代码: //以下为 RandomMaker. ...
- jsp 监听器
Servlet API提供了一系列的事件和事件监听接口. 上层的servlet/JSP应用能够通过调用这些API进行事件 驱动的开发.这里监听的所有事件都继承自 java.util.Event对象.监 ...
- hdu4612 卡cin e-DCC缩点
/* 给定无向图,求加入一条边后最少剩下多少桥 */ #include<bits/stdc++.h> using namespace std; #define maxn 200005 #d ...