一.rsync 概念

1.rsync
rsync是类unix/linux系统下的数据镜像备份工具。使用快速增量备份工具Remote Sync可以远程同步,支持本地复制,或者与其他SSH、rsync主机同步。rsync是通过超级守护进程xinetd进行触发同步和管理的。CentOS6.4默认已经安装rsync,但未安装xinetd

2.inotify
Inotify 是一种强大的、细粒度的、异步的文件系统事件监控机制,linux内核从2.6.13起,加入了Inotify支持,通过Inotify可以监控文件系统中添加、修改、移动等各种细微事件,利用这个内核接口,第三方软件就可以监控文件系统下文件的各种变化情况,而inotify-tools就是这样的一个第三方软件。
3、rsync+inotify 之推荐理由
1)服务器性能:rsync+crontab会定时去检查是否有文件更新,即便没有更新也会去检查,这势必会造成服务器性能下降;而rsync+inotify组合是触发式更新,只有在数据文件有变化时,才会去更新,因此相对前者而言,是提高了服务器性能
2)数据实时性:rsync+crontab是周期性任务计划,不能保证数据的实时性;rsync+inotify组合是触发式更新,只要有数据变化,就立刻同步更新
3)当同步的目录数据量巨大时,建议使用 Rsync+sersync 架构,具体配置参考:http://www.osyunwei.com/archives/7447.html

二.rsync 安装

yum install rsync -y

三.rsync 的选项说明。

-a,--archive(存档) 归模式,表示以递归的方式传输文件,并且保持文件属性,等同于加了参数-rlptgoD

-r,–recursive 对子目录以递归模式处理

-l,--links 表示拷贝链接文件

-p , --perms 表示保持文件原有权限

-t , --times 表示保持文件原有时间

-g , --group 表示保持文件原有属用户组

-o , --owner 表示保持文件原有属主

-D , --devices 表示块设备文件信息

-z , --compress 表示压缩传输

-H 表示硬连接文件

-A 保留ACL属性信息

-P 显示传输进度

-u, --update 仅仅进行更新,也就是跳过所有已经存在于目标位置,并且文件时间晚于要备份的文件。(不覆盖更新的文件)

--port=PORT 指定其他的rsync服务端口  873

--delete 删除那些目标位置有而原始位置没有的文件

--password-file=FILE 从FILE中得到密码
--bwlimit=KBPS 限制I/O带宽,Kbytes /second

--filter “- 文件名”需要过滤的文件

--exclude= :需要过滤的文件

-v 显示同步过程的详细信息

四.测试环境

1.环境

数据服务器: 192.168.1.195

目标服务器:192.168.1.196

2.免秘钥登录服务器

3.同步命令:

[root@master home]#rsync -avz /home/backup root@192.168.1.196:/home

目标服务:

五.inotify 部署安装

1.下载网址

wget http://github.com/downloads/rvoicilas/inotify-tools/inotify-tools-3.14.tar.gz

2.安装

#tar -zxvf inotify-tools-3.14.tar.gz

#cd inotify-tools-3.14

#./configure --prefix=/usr/local/inotify-tools-3.14

#make && make install

#ln -s /usr/local/inotify-tools-3.14/ /usr/local/inotify-tools ##创建软链接

#cd /usr/local/inotify-tools

##提示编译成功后会生成4个目录,分别是:

#ll

total 16

drwxr-xr-x. 2 root root 4096 Jan 31 01:55 bin ##inotify执行命令(二进制)

drwxr-xr-x. 3 root root 4096 Jan 31 01:55 include ##inotify程序所需用的头文件

drwxr-xr-x. 2 root root 4096 Jan 31 01:55 lib ##动态链接的库文件

drwxr-xr-x. 4 root root 4096 Jan 31 01:55 share ##帮助文档

六.工具集合介绍:

一共安装了2个工具(命令),即inotifywait和inotifywatch

inotifywait:在被监控的文件或目录上等待特定文件系统事件(open、close、delete等)发生,执行后处于阻塞状态,适合在shell脚本中使用。

inotifywatch:收集被监视的文件系统使用度统计数据,指定文件系统事件发生的次数统计。

七.inotify命令常用参数详解:

# ./bin/inotifywait --help

inotifywait 3.14

Wait for a particular event on a file or set of files.

Usage: inotifywait [ options ] file1 [ file2 ] [ file3 ] [ ... ]

Options:

-r|--recursive Watch directories recursively. ##递归查询目录

-q|--quiet Print less (only print events) ##打印很少的信息,仅仅打印监控相关的信息

-m|--monitor Keep listening for events forever. Without

this option, inotifywait will exit after one

event is received. ##始终保持事件监听状态

--excludei <pattern>

Like --exclude but case insensitive. ##排除文件或目录时,不区分大小写

--timefmt <fmt> strftime-compatible format string for use with

%T in --format string. ##指定时间的输出格式

八、测试监控事件(开两个窗口,一个窗口执行命令,另一窗口对监控目录做增、删、改操作)

1.测试脚本

 #!/bin/bash

 #实行当前命令后,界面处于阻塞状态,只有在另外一个客户端测试时,才会显示监控状态

 /usr/local/inotify-tools/bin/inotifywait -mrq -e modify,create,move,delete,attrib /home/backup |while read events    

 do
rsync -a --delete /home/backup 192.168.1.196::test
echo "`date +'%F %T'` 出现事件 $events" >>/tmp/rsync.log >&
done

2.目标主机添加test用户

[root@node01 backup]# vi /etc/rsyncd.conf  (配置文件最下面添加)

[test]
path = /home/
read only = false
uid = root
gid = root

3.执行命令

[root@master inotify-tools]# nohup ./rsync_back.sh &

4.开启另一个窗口执行删除, 修改,创建等命令

5.查看nohup的日志

6.目标服务器,自动生成文件和修改的内容。

CentOS7 Rsync服务搭建-Rsync+Inotify架构实现实时同步的更多相关文章

  1. CentOS7之Rsync+Inotify架构实现实时同步文件和文件夹

    简介:rsync是用来同步文件和文件夹的,inotify是用来实现监听变动而自动同步的 OS:Centos7.3 服务器端:172.16.13.157 客 户 端  :172.16.13.156 目  ...

  2. rsync 服务搭建

    rsync 服务搭建 服务端部署操作内容: 创建rsync用户和用户组 eg: useradd -s /sbin/nologin -M rsync 创建需要备份的指定目录,并修改权限 eg: mkdi ...

  3. sersync基于rsync+inotify实现数据实时同步

    一.环境描述 需求:服务器A与服务器B为主备服务模式,需要保持文件一致性,现采用sersync基于rsync+inotify实现数据实时同步 主服务器A:192.168.1.23 从服务器B:192. ...

  4. CentOS 6.5 rsync+inotify实现数据实时同步备份

    CentOS 6.5 rsync+inotify实现数据实时同步备份 rsync    remote sync 远程同步,同步是把数据从缓冲区同步到磁盘上去的.数据在内存缓存区完成之后还没有写入到磁盘 ...

  5. inotify+rsync架构实现实时同步

    前序 使用inotify+rsync架构实现(文件夹/文件)实时同步, 双机之间需要ssh免密码配置(两步完成ssh免密码登录) 环境 客户端:192.168.137.176 (rsync + ino ...

  6. rsync服务搭建--2018.5.8 [优化后最终版]

    2018年5月8日 22:09:38 第一步配置基础环境(按照自己的规划配置并非每人的环境都一致) 第一台服务器(RSYNC服务器): rsync外网地址:10.0.0.41  rsync内网地址:1 ...

  7. rsync+inotify实现数据实时同步

    rsync rsync是linux系统下的数据镜像备份工具.支持远程同步,本地复制,或者与其他SSH.rsync主机同步. 优点: 1).可以镜像保存整个目录树和文件系统.保存源目录整个目录树和文件系 ...

  8. 实战:rsync+inotify实现数据实时同步

    Linux 内核从 2.6.13 版本开始提供了 inotify 通知接口,用来监控文件系统的各种变化情况,如文件存取.删除.移动等.利用这一机制,可以非常方便地实现文件异动告警.增量备份,并针对目录 ...

  9. Rsync + inotify 实现文件实时同步

    Rsync 用来实现触发式的文件同步. Inotify-tools是一套组件,Linux内核从2.6.13版本开始提供了inotify通知接口,用来监控文件系统的各种变化情况,如文件存取.删除.移动等 ...

随机推荐

  1. windows10移动热点打开后手机不能上网

    电脑的win10操作系统自带有移动热点功能,可以共享上网,类似于手机的热点功能.今天在共享时遇到一些问题,现在解决了分享一下. 如果本身电脑无法上网,即wlan上网功能无效,有可能是驱动不兼容,可以在 ...

  2. MySQL报错:error1130

    ERROR (HY000): Host 'ip-172-31-x-x.ec2.internal' is not allowed to connect to this MySQL server 分析,从 ...

  3. .NET Core 使用 EF 出错的解决方法

    在.NET Core 项目钟(类库),使用Entity Framework,建立模型生成数据库时,失败 Could not load assembly 'xxx'. Ensure it is refe ...

  4. 配置好jdk后,cmd编写java -version还是报找不到jdk

    找了好长时间没查出问题在哪,配置的都没有问题,最后搜了搜网上发现,jdk的这两行得在最上面才行.

  5. centos7装机教程

    U盘启动电脑进入安装界面 正常情况下你应该会看到下面的这个界面: 选择第一项,然后按TAB键,然后会看到下面这个: 3.修改第二步中按TAB键出来的命令 将命令修改为:>vmlinuz init ...

  6. python爬虫(三)

    webdriver Selenium是ThroughtWorks公司开发的一套Web自动化测试工具.它分为三个组件:Selenium IDE,Selenium RC (Remote Control), ...

  7. CentOS7+Nginx设置Systemctl restart nginx.service服务

    centos 7上是用Systemd进行系统初始化的,Systemd 是 Linux 系统中最新的初始化系统(init),它主要的设计目标是克服 sysvinit 固有的缺点,提高系统的启动速度.关于 ...

  8. [luogu3198] 玩具装箱

    题面 ​ 最近在搞dp, 发现自己的dp还是太弱了, 做的题比较少, 也有一些东西没学, 这道题算是我独立做的第一道斜率优化dp, 写篇题解纪念一下吧. ​ dp式比较简单, 就是一个线性的dp, 设 ...

  9. oracle 批量更新merge语句

    merge into (SELECT * FROM QUERY_DB1.test_MPOS  ) T1 using (SELECT FLAG FLAG1,IN_MNO FROM QUERY_DB1.t ...

  10. shiro实战系列(十四)之配置

    Shiro 被设计成能够在任何环境下工作,从最简单的命令行应用程序到最大的的企业群集应用.由于环境的多样性,使得许多配置机制适用于它的配置. 一. 许多配置选项 Shiro的SecurityManag ...