innotify主要功能:

他是内核用于通知用户控件程序文件系统变化的机制。

也就是说,当服务器发生了任何的改动,内核都会知道并通知用户。

rssync(做同步的)+innotify做到的就是实时的同步。

首先,我们需要明白的rsync的工作机制,常用的工作模式有俩种:

1,rsync客户端向服务器端推送文件。eg:

rsync -avz --progress /opt/ yangshuai@192.168.10.152::backup1 --password-file=/etc/rsyncd.secrets1

opt:客户端被推送文件所在的目录。

yangshuai@192.168.10.152::backup1   对端服务器的用户和IP,加上模块

/etc/rsyncd.secrets1:本机的密码文件,只有密码。

2,rsync客户端从服务器端下载文件。

rsync -vzrtopg  --password-file=/etc/rsyncd.secrets yangshuai@192.168.10.252::backup /opt

--password-file=/etc/rsyncd.secrets:本机的密码文件,只有密码.

yangshuai@192.168.10.252::backup   对端服务器的用户和IP,加上模块

opt:   想要把从服务器端下载的文件存放的目录。

要想利用rsync+innotify做到实时同步,我们可以用到的是rsync客户端向服务器端传送文件。

客户端需要做的是安装rsync,并安装innotity模块。

安装rsync:

yum -y install rsync

无需输入密码访问  echo "123456">>/etc/rsyncd.secrets

安装innotity模块并写监控脚本:

将压缩包上传到客户端

解压:tar zvxf inotify-tools-3.13.tar.gz

编译安装: cd  inotify-tools-3.13

./configure --prefix=/usr/local/inotify

make && make install

编写监控脚本:

vi  rsync.sh

#!/bin/bash

src=/opt/

des=backup1

ip=192.168.10.152

/usr/local/inotify/bin/inotifywait -mrq --timefmt '%d/%m/%y/%H:%M' --format '%T%w%f' -e modify,delete,create,attrib $src | while read file

do

rsync -vzrtopg --delete --progress $src yangshuai@$ip::$des --password-file=/etc/rsyncd.secrets1 &&

echo "$src has been resynced"

done

执行监控脚本,并在后台执行

sh  rsync.sh  &

服务器端做的配置:

安装rsync,并编写配置文件:

yum -y install rsync

vi /etc/rsyncd.conf

pid file = /var/run/rsyncd.pid

port = 873

address = 192.168.10.152    #主机的地址

uid = root

gid = root

use chroot = yes

read only = no

write only = no

hosts allow = *   #备份主机的地址

hosts deny = *

max connections = 10

timeout = 300

log file = /var/log/rsyncd.log

transfer logging = yes

log format = %t %a %m %f %b

[backup1]

path=/opt/                    #被客户端推送的时候,是存放路径:被客户端下载的时候,是下载路径。

list = yes

ignore errors = yes

auth users = yangshuai                                    #连接用户的名字

secrets file=/etc/rsyncd.secrets

编写密码文件并配置权限:

vi  /etc/rsyncd.secrets

yangshuai:123456

chmod 600 /etc/rsyncd.secrets

启动服务:

rsync  --daemon

现在整个rsync服务器就已经搭建好了,并且能做到实时同步。

直接在客户端做测试就好了

日常笔记,有问题的话请联系我531197592@qq.com

rsync+innotify做到同步式更新的更多相关文章

  1. Rsync+lsync实现触发式实时同步

    使用rsync+lsync实现触发式实时同步 服务器信息 centos6.5 主:192.168.5.4 搭建lsync 从:192.168.5.3 搭建rsync 1.1 从服务器设置 # yum ...

  2. 分布式系统中一些主要的副本更新策略——Dynamo/Cassandra/Riak同时采取了主从式更新的同步+异步类型,以及任意节点更新的策略。

    分布式系统中一些主要的副本更新策略. 1.同时更新 类型A:没有任何协议,可能出现多个节点执行顺序交叉导致数据不一致情况. 类型B:通过一致性协议唯一确定不同更新操作的执行顺序,从而保证数据一致性 2 ...

  3. rsync+inotify 实现资源服务器的同步目录下的文件变化时,备份服务器的同步目录更新,以资源服务器为准,去同步其他客户端

    测试环境: 资源服务器(主服务器):192.168.200.95 备份服务器(客户端):192.168.200.89 同步目录:/etc/test 同步时使用的用户名hadoop密码12345 实验目 ...

  4. 2-3-2 rsync+inotify备份同步数据

    RSYNC = Remote Sync 远程同步 高效,一定要结合shell 官网:https://rsync.samba.org Author: Andrew Tridgell, Wayne Dav ...

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

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

  6. linux服务器之间的文件同步;rsync+inotifywait;同步多个目录

    1.双向同步:unison+inotify 2.单向同步:rsync+inotify python版的pyinotify 本文介绍第二种方法: 1.Inotify 是一个 Linux特性,它监控文件系 ...

  7. inotify+rsync文件实时同步

    原文转自http://dl528888.blog.51cto.com/2382721/771533/ 之前做了“ssh信任与scp自动传输脚本”的技术文档,此方案是作为公司里备份的方法,但在实际的运行 ...

  8. RSync实现文件备份同步

    [rsync实现网站的备份,文件的同步,不同系统的文件的同步,如果是windows的话,需要windows版本cwrsync] 一.什么是rsync rsync,remote synchronize顾 ...

  9. 【转】CentOS5.6下配置rsync内网同步数据到外网

    [转]CentOS5.6下配置rsync内网同步数据到外网 本文转自:http://www.linuxidc.com/Linux/2012-06/64070.htm 一.需求 卫士那边有一个需求,就是 ...

随机推荐

  1. 安卓ListView的性能优化

    在安卓APP中LIstView这个控件可以说基本上是个APP就会用到,但是关于ListView除了需要了解其最基本的用法外,作为一个要做出高性能APP的程序员还需了解一些关于LIstView控件性能优 ...

  2. JavaScript中的三种弹出对话框

    学习过js的小伙伴会发现,我们在一些实例中用到了alert()方法.prompt()方法.prompt()方法,他们都是在屏幕上弹出一个对话框,并且在上面显示括号内的内容,使用这种方法使得页面的交互性 ...

  3. Java-IO之FileDescriptor

    FileDescriptor是文件描述符,可以被用来表示开放文件,开放套接字等,FileDescriptor可以被看成某个文件,但无法对该文件进行操作,需要新创建FileDescriptor对应的Fi ...

  4. 如何优化MySQL insert性能

    对于一些数据量较大的系统,面临的问题除了是查询效率低下,还有一个很重要的问题就是插入时间长.我们就有一个业务系统,每天的数据导入需要4-5个钟.这种费时的操作其实是很有风险的,假设程序出了问题,想重跑 ...

  5. ROS_Kinetic_14 ROS工具roswtf的基本使用方法等

    ROS_Kinetic_14 ROS工具roswtf的基本使用方法 官网教程:http://wiki.ros.org/cn/ROS/Tutorials/Getting%20started%20with ...

  6. SpringMVC返回json是设置编辑等消息头,消息头信息介绍(respone.setHeader,这个从网上获取)

    1.  SpringMVC中设置消息头,例子如下: ? 因为上面的代码没有添加该文件的编码说明 , WEB应用程序在将jsp翻译成class文件时 , 把该字符串的内容按默认的保存方式指定的编码ASC ...

  7. redis3.0.5在linux上安装与配置

    redis3.0.5在linux上安装与配置 rhel6/ubuntu14 1 下载 # wget http://download.redis.io/releases/redis-3.0.5.tar. ...

  8. sql中with的用法(CTE公用表表达式):应用子查询嵌套,提高sql性能

    一.WITH AS的含义 WITH AS短语,也叫子查询部分(subquery factoring),定义一个SQL片断,该片断会被整个SQL语句所用到. 有时是为了让SQL语句的可读性更高些,也可能 ...

  9. ShapeDrawable做放大镜效果

    引用一下ShapeDrawable的类的说明: java.lang.Object    ? android.graphics.drawable.Drawable      ? android.grap ...

  10. 03_Android NDK中C语言调用Java代码,javah的使用,javap的使用以及生成签名,Android.mk的编写,C代码的编写

     1  案例场景,通过C语言回调Java的代码,案例的最终界面: 2  案例的代码结构如下: 3 编写DataProvider的代码: package com.example.ndkcallbac ...