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实时同步的更多相关文章

  1. rsync+inotify实时同步环境部署记录

    随着应用系统规模的不断扩大,对数据的安全性和可靠性也提出的更好的要求,rsync在高端业务系统中也逐渐暴露出了很多不足.首先,rsync在同步数据时,需要扫描所有文件后进行比对,进行差量传输.如果文件 ...

  2. rsync+inotify实时同步方案

    rsync+inotify实时同步,inotify可以实时监控本地文件或目录变化,当检测到本地文件变化,执行rsync同步命令,将变化的文件同步到其他服务器节点. 1.配置环境 3.在服务节点1.服务 ...

  3. CentOS6.5实现rsync+inotify实时同步

    参考博文: 参考1:CentOS6.5实现rsync+inotify实时同步 参考2:inotify-tools+rsync实时同步文件安装和配置 CentOS 6.3下rsync服务器的安装与配置  ...

  4. 配置rsync+inotify实时同步

    与上一篇同步做 配置rsync+inotify实时同步 1:调整inotify内核参数 在linux内核中,默认的inotify机制提供三个调控参数:max_queue_events.max_user ...

  5. linux设置rsync+inotify实时同步文件

    linux设置rsync+inotify实时同步文件   应用场景: 同步接收方:test01 接收目录:/opt/software/test/a/ 同步发起方:test02 同步目录:/opt/so ...

  6. (转)rsync+inotify实时同步

    原文:http://lxw66.blog.51cto.com/5547576/1331048 声明:rsync inotify 需要逆向思考,当只做rsync不实时同步时,我们一般是从rsync服务端 ...

  7. rsync+inotify实时同步

    !!!在安装前要先确保,rsync daemon服务配置成功,在安装inotify-tools前先确认你的linux内核是否达到了2.6.13,并且在编译时开启CONFIG_INOTIFY选项,也可以 ...

  8. centos 6 rsync+inotify 实时同步

    主机名.ip: server 172.31.82.184 client  172.31.82.185 需求: 1.server端 ”/data/server“ 做为client端 “/data/cli ...

  9. rsync + inotify 实时同步

    1. 前言 2 台 nginx 需要做集群, 静态文件和php文件都在nginx服务器本地. 有三种方案: (1)NFS (2)Rsync + inotify (3)共享存储服务器 第一种:当 nfs ...

随机推荐

  1. JQery插件clipboard.js ----将文本复制到剪贴板的现代化方法

    ### 之前用了js自带的剪贴板对象clipboardData 对象以为就可以实现粘贴复制,但是种只支持IE的. 就找了jq的一个插件Zclip,但是网上的说法是利用了flesh来实现的,我用了之后可 ...

  2. [加密算法]为什么说RSA难以被破解

    RSA算法运用了数学“两个大的质数相乘,难以在短时间内将其因式分解”的这么一套看似简单事实上真的是很困难的一个数学难题...... 以前也接触过RSA加密算法,感觉这个东西太神秘了,是数学家的事,和我 ...

  3. 连接mysql(建表和删表)

    from sqlalchemy.ext.declarative import declarative_base##拿到父类from sqlalchemy import Column##拿到字段from ...

  4. Linux学习之CentOS(三)--初识linux的文件系统以及用户组等概念

    Linux学习之CentOS(三)--初识linux的文件系统以及用户组等概念 进入到了Linux学习之CentOS第三篇了,这篇文章主要记录下对linux文件系统的初步认识,以及用户组.用户权限.文 ...

  5. 任意N位二进制的补码实现——队列存放

    正在学习计算机组织与结构,为了写一些底层的算术操作模拟,比如一个二进制补码数的加减乘除,发现这很麻烦,因为不管是什么语言,都只提供了8位.32.64位等部分位数的补码形式,那么怎么实现任意任意位的补码 ...

  6. tp5学习

    tp5的表单验证 tp5验证码的使用: tp5分页后页面跳转:少参数的处理方法: tp5绑定根目录为: public目录下的index.php 隐藏index.php .htaccess文件修改 控制 ...

  7. js——事件冒泡与捕获小例子

    布局代码 #outer{ width: 300px; height: 300px; background: red; } #inner{ width: 200px; height: 200px; ba ...

  8. 用sqlplus为oracle创建用户和表空间

    用Oracle自带的企业管理器或PL/SQL图形化的方法创建表空间和用户以及分配权限是相对比较简单的, 本文要介绍的是另一种方法就是使用Oracle所带的命令行工具SQLPLUS来创建表空间. 打开S ...

  9. Confluence 6 在 Apache 或者系统级别阻止垃圾

    如果一个垃圾发布机器人攻击你的 Confluence 站点,这些程序可能来自于同一个 IP 地址,或者是一个比较小范围的 IP 地址段.希望找到攻击者的 IP 地址,请参考 Apache access ...

  10. Confluence 6 虚拟文件和文件夹

    在取消点赞事件中,你可能会遇到 WebDAV  客户端的问题或者不稳定的情况,你可以启用访问自动创建(虚拟)文件和文件夹. 备注: 在默认情况下,这个选项隐藏在 'WebDAV Configurati ...