测试环境如下:

inotify-slave IP : 172.16.0.222

inotify-master IP : 172.16.0.233

对两台机的要求:

安装依赖包gcc: yum install gcc –y

关闭disabled

开放端口873

一、inotify slave部署

1、  安装rsync:

 $ sudo yum install rsync –y

2、  添加用户和模块目录,并更改用户和组

$ sudo useradd rsync –s /sbin/nologin –M

$ sudo mkdir /home/jeff/back

$ sudo chown rsync.rsync /home/jeff/back/

3、  修改配置文件/etc/rsyncd.conf,内容如下:

uid = rsync
gid = rsync
use chroot = no
max connections = 200
timeout = 300
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log [backup]
path = /home/jeff/back/
ignore errors
read only = no
write only = no
list = false
hosts allow = 10.0.0.0/24
hosts deny = 0.0.0.0/32
auth users = rsync_backup
secrets file = /etc/rsync.password

Tips: ubuntu系统的文件路径一般为/usr/share/doc/rsync/examples/rsyncd.conf,可以创建软链接,结果都一样。创建方法如下:

$ sudo ln -s /usr/share/doc/rsync/examples/rsyncd.conf  /etc/rsyncd.conf

4、  配置虚拟用户的密码文件

$ sudo -i
# echo ‘rsync_backup:jeff’ >>/etc/rsync.password
# exit
$ sudo chmod 600 /etc/rsync.password
$ sudo rsync --daemon
$ sudo ss -tulpn |grep rsync

5、  加入开机启动

$ sudo -i
# echo ‘/usr/bin/rsync --daemon’ >>/etc/rc.local
# exit

二、部署服务器(inotify-master)

1、  查看系统是否支持inotity

ll /proc/sys/fs/inotify 

# 如果显示max_queued_events、max_user_instances、max_user_watches就证明支持inotify

2、  安装inotify 3.14

$ wget http://github.com/downloads/rvoicilas/inotify-tools/inotify-tools-3.14.tar.gz
$ tar zxf inotify-tools-3.14.tar.gz
$ cd inotify-tools-3.14 $ sudo ./configure --prefix=/usr/local/inotify
$ sudo make && sudo make install

3、  创建备份目录

$ mkdir /home/jeff/back/

4、  创建rsync服务的密码文件

$ sudo -i
# echo “jeff” >/etc/rsync.password //此处只写密码即可
# chmod 600 /etc/rsync.password
# exit

5、  编写执行脚本

$ sudo vim /usr/local/inotify.sh

[/usr/local/inotify.sh]
#!/bin/bash
host01=172.16.0.222 //inotify-slaver的IP地址
src=/home/jeff/back //本地监控的目录
dst=backup //inotify-slave的服务模块名
user=rsync_backup //inotify-slave的rsync虚拟用户
rsync_passfile=/etc/rsync.password //本地调用的rsync密码文件
inotify_home=/usr/local/inotify //inotify安装目录 #judge
if [ ! -e "$src" ] \
|| [ ! -e "${rsync_passfile}" ] \
|| [ ! -e "${inotify_home}/bin/inotifywait" ] \
|| [ ! -e "/usr/bin/rsync" ];
then
echo "Check File and Folder"
exit 9
fi ${inotify_home}/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f' -e close_write,delete,create,attrib $src \
| while read file
do
# rsync -avzP --delete --timeout=100 --password-file=${rsync_passfile} $src $user@$host01::$dst >/dev/null 2>&1
cd $src && rsync -aruz -R --delete ./ --timeout=100 $user@$host01::$dst --password-file=${rsync_passfile} >/dev/null 2>&1
done
exit 0

6、将脚本加入后台执行

$ sh inotify.sh &

7、  加入开机启动

$ sudo -i
# echo ‘/bin/bash /home/jeff/inotify.sh &’ >>/etc/rc.local
# exit

三、测试实时同步(部署前建议先运行这一步验证,然后再执行第二步)

$ sudo rsync  -avz /home/jeff/back/test.txt rsync_backup@10.0.0.22::backup --password-file=/etc/rsync.password

四、改变SSH的默认端口为1234时,rsync的连接方法如下

# 此处用-e 'ssh -p 3333'来指定SSH连接端口
$ /usr/bin/rsync -av /backup/* -e 'ssh -p 3333' root@10.0.0.22:/backup/

PS:操作步骤参考自 http://jingyan.baidu.com/article/656db918ee2f13e380249c4d.html

CentOS 7 rsync+inotify实现实时同步的更多相关文章

  1. centos 配置rsync+inotify数据实时同步2

    一.Rsync服务简介 1. 什么是Rsync 它是一个远程数据同步工具,它在同步文件的同时,可通过LAN/WAN快速同步多台主机间的文件.Rsync使用所谓的“rsync算法”来使本地和远程两个主机 ...

  2. centos 配置rsync+inotify数据实时同步

    何为rsync? 定义: rsync是一个开源的快速备份工具,可以在不同主机之间镜像同步整个目录树,支持增量备份,保持链接和权限,非常适用于异地备份 何为源端和发起端? 在远程同步过程中,负责发起rs ...

  3. linux rsync +inotify 实现 实时同步

    前言:     rsync可以实现触发式的文件同步,但是通过crontab守护进程方式进行触发,同步的数据和实际数据会有差异,而inotify可以监控文件系统的各种变化,当文件有任何变动时,就触发rs ...

  4. rsync + inotify 数据实时同步

    一.rsync介绍 rsync英文全称为Remote synchronization,从软件的名称就可以看出来,Rsync具有可是本地和远程两台主机之间的数据快速复制同步镜像.远程备份的功能,这个功能 ...

  5. rsync+inotify实现实时同步案例--转

    转自:http://chocolee.blog.51cto.com/8158455/1400596 随着应用系统规模的不断扩大,对数据的安全性和可靠性也提出的更好的要求,rsync在高端业务系统中也逐 ...

  6. Rsync+inotify实现实时同步

    1.1 inotify介绍 inotify是一种强大的.细粒度的.异步的文件系统事件控制机制.linux内核从2.6.13起,加入了inotify支持,通过inotify可以监控文件系统中添加.删除. ...

  7. rsync+inotify实现实时同步案例【转】

    1.1 inotify介绍 inotify是一种强大的.细粒度的.异步的文件系统事件控制机制.linux内核从2.6.13起,加入了inotify支持,通过inotify可以监控文件系统中添加.删除. ...

  8. rsync+inotify实现实时同步案例

    转自:http://chocolee.blog.51cto.com/8158455/1400596 随着应用系统规模的不断扩大,对数据的安全性和可靠性也提出的更好的要求,rsync在高端业务系统中也逐 ...

  9. rsync简介与rsync+inotify配置实时同步数据

    rsync简介 rsync是linux系统下的数据镜像备份工具.使用快速增量备份工具Remote Sync可以远程同步,支持本地复制,或者与其他SSH.rsync主机同步. rsync特性 rsync ...

随机推荐

  1. 【转载】Java定时器的学习

    前几看了一下<thinking in java>了解到java原生的Times类有两个问题: (1)Timer是启动单个线程来处理所有的时间任务,如果一个任务耗时很久,那么如果在执行这个过 ...

  2. Kattis - yoda 【字符串】

    分析 给出两个串 从末尾开始对齐 每位对齐后,每一位 遍历 如果 第一串 的那位 < 第二串 的 那么 第一串的那位 就删去 如果 等于 两位 都保留 如果 大于 那么 保留 第二串的 那位 如 ...

  3. hadoop自带例子SecondarySort源码分析MapReduce原理

    这里分析MapReduce原理并没用WordCount,目前没用过hadoop也没接触过大数据,感觉,只是感觉,在项目中,如果真的用到了MapReduce那待排序的肯定会更加实用. 先贴上源码 pac ...

  4. Data Structure Binary Tree: Connect nodes at same level using constant extra space

    http://www.geeksforgeeks.org/connect-nodes-at-same-level-with-o1-extra-space/ recursive: #include &l ...

  5. zabbix实现mysql数据库的监控(三)

    上面一章“zabbix实现mysql数据库的监控(二)”使用MPM来监控mysql,但是遇到安装问题始终解决不了,这里改用percona-monitoring-plugins进行zabbxi上监控my ...

  6. CHAR,TCHAR,WCHAR 三者的区别与转换

    #ifdef   UNICODE               typedef   wchar_t   TCHAR; #else               typedef   unsigned   c ...

  7. Havel-Hakimi定理 POJ1659

    对于图的所有顶点,计算出每个顶点的度,度序列.给定一个序列判断序列是否可图. #include<cstdio> #include<algorithm> #include< ...

  8. MAC下ssh免密码登录远程服务器

    生成密钥.在终端下执行命令: ssh-keygen -t rsa 一路回车,各种提示按默认不要改,等待执行完毕.然后执行: ls ~/.ssh #可以看到两个密钥文件:id_rsa(私钥) id_rs ...

  9. 算法(Algorithms)第4版 练习 1.5.23

    package com.qiusongde; import edu.princeton.cs.algs4.StdOut; public class Exercise1523 { public stat ...

  10. Bootstrap(二)段落+强调内容

    在Bootstrap中为文本设置了一个全局的文本样式(这里所说的文本是指正文文本): 1.全局文本字号为14px(font-size). 2.行高为1.42857143(line-height),大约 ...