浅谈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 ...
随机推荐
- websocket:日常总结
1.报错:DefaultHandshakeHandler : Handshake failed due to invalid Upgrade header 参考文章:https://www.cnblo ...
- 【原创】大叔经验分享(31)CM金丝雀Canary报错
CM金丝雀Canary报错 1 HDFS 金丝雀Canary 测试无法为 /tmp/.cloudera_health_monitoring_canary_files 创建父目录. 2 Hive Met ...
- MVC 基于 AuthorizeAttribute 实现的登陆权限控制
代码的执行顺序是 OnAuthorization–>AuthorizeCore–>HandleUnauthorizedRequest. 如果AuthorizeCore返回false时,才会 ...
- 分布式系统的一致性协议之 2PC 和 3PC
在分布式系统领域,有一个理论,对于分布式系统的设计影响非常大,那就是 CAP 理论,即对于一个分布式系统而言,它是无法同时满足 Consistency(强一致性).Availability(可用性) ...
- Confluence 6 企业环境或者网站托管的 Java 配置策略
Confluence 需要依赖一些 Java 的库才能够允运行.一些依赖的 Java 库应用了 Java 的语言特性,但是又是被 Java 的安全策略所限制的. 这个通常来说是不会造成任何问题的.默认 ...
- Confluence 6 修改 Home 目录的位置
当 Confluence 第一次启动的时候,Confluence 将会读取 confluence-init.properties 文件并从这个文件中确定如何去查找 Home 目录. 希望修改 home ...
- iOS项目国际化详解
现在的开发中难免会遇到项目国际化处理,下面把我理解到的国际化相关的知识点进行总结归纳 1 首先是对项目名称,系统性的文字进行名字化,比如程序名字 1,先给项目添加语言 2 添加InfoPlist.st ...
- 【gearman】gearmand -d 无反应解决
背景:安装了gearman后,用指令gearmand -d启动后.输入ps -ef|grep gearmand 查找不到.说明服务并没有启动. 查看报错: gearmand -d -l gear.lo ...
- Metasploit
1.启动Metasploit 声明:本次渗透测试的主机是我自己在自己的攻击主机上搭建的另一个操作系统,为了真实性设置了常见的IP地址,如有重合但绝对不是任何实体公司或者单位的IP地址. 所以不承担任何 ...
- java Web工程师面试题集绵
一.Java 基础 1.JDK .JRE 和JVM关系是什么? 答:A. JDK(Java Development Kit)即Java开发工具包,包含编写Java程序所必须的编译.运行等开发工具以及J ...