备份用户nfs共享文件系统,存储单点解决方案inotify+rsync(增量,无差异备份),inotify是单线程,

inotify是一种强大的,细粒度的,异步的文件系统事件监控机制,通过加入了inotify可以实时监控文件

系统中添加,删除,修改,移动等各种事件 ,sersync比inotify有更多功能;

6.1、实现从nfs(rsync)存储端到rsync(rsync --daemon)服务器的数据传送 :

6.2、在nfs服务器上安装inotify服务,实现nfs客户端对nfs目录文件系统事件的实时监控:

1、查看nfs服务器是否支持inotify

ls -l /proc/sys/fs/inotify/

2、安装inotify包

wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo #安装第三方源

yum -y install inotify-tools

[root@nfs01 ~]# rpm -qa inotify-tools

inotify-tools-3.14-1.el6.x86_64

3、工具介绍

inotifywait:在被监控的文件或目录上等待待定文件系统事件(open,close,delete等)发生,

执行后处于阻塞状态,适用在shell脚本中使用;

-r#递归查询目录

-q#打印很少的信息,仅仅打印监控事件的信息

-m#始终保持事件监听状态

--excludei#排除文件或目录时不区分大小写

--timefmt#指定时间输出的格式

--format#打印使用指定的输出类似格式的字符串

-e#通过此参数可以指定需要监控的事件

access#文件或目录被读取

modify#文件或目录内容被修改

close_write:修改

inotifywatch:收集被监视的文件系统,使用统计数据,指文件系统时间发生的次数;

举例:

[root@nfs01 ~]# inotifywait -mrq --timefmt '%F %H:%M' --format '%T %w%f' -e close_write,create,delete /tmp

2018-10-14 15:47 /tmp/a

--timefmt:时间的格式;

--format:对设置的格式进行执行,%T代表时间,%w%f代表目录和文件;

4、当客户端监控到nfs共享文件系统事件变化后,触发rsync推送数据:

vim /server/scripts/inotify.sh

#!/bin/sh

export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

Path=/data

Ip=172.16.1.41

/usr/bin/inotifywait -mrq --format '%w%f' -e close_write,create,delete $Path/ \

|while read file;do

if [ -f $file ];then #$file读取的是‘%w%f’的地址格式

rsync -az $file --delete rsync_backup@$Ip::nfsbackup/ --password-file=/etc/rsync.password >/dev/null 2>&1 &

else

rsync -az $Path/ --delete rsync_backup@$Ip::nfsbackup/ --password-file=/etc/rsync.password >/dev/null 2>&1 &

fi

done

#/usr/bin/inotifywait -mrq --timefmt '%F %H%M' --format '%T %w%f' -e close_write,create,delete $Path/ \

chown u+x inotify.sh

4、启动脚本:

sh inotify.sh

[root@nfs01 ~]# ps -ef | grep inotify

root 2034 1972 0 13:25 pts/0 00:00:00 sh /server/scripts/inotify.sh

root 2035 2034 0 13:25 pts/0 00:00:00 /usr/bin/inotifywait -mrq --format %w%f -e close_write,create,delete /data/

root 2036 2034 0 13:25 pts/0 00:00:00 sh /server/scripts/inotify.sh

root 2063 2039 0 13:25 pts/1 00:00:00 grep inotify

4、加入到 开机自启动中:

echo “/bin/sh /server/scripts/inotify.sh”>/etc/rc.local

5、在backup服务器上进行查看watch ls 每两秒刷新一次

6.3、inotify系统调优:

1、在/proc/sys/fs/inotify 目录下有三个文件,对inotify机制有一定的限制:

[root@nfs01 inotify]# ls -l /proc/sys/fs/inotify/

总用量 0

-rw-r--r-- 1 root root 0 10月 15 13:13 max_queued_events #默认是16334

-rw-r--r-- 1 root root 0 10月 15 13:13 max_user_instances #128

-rw-r--r-- 1 root root 0 10月 15 13:13 max_user_watches #8192

max_queued_events:设置inotify实例事件(event)队列可容纳的事件数量

max_user_watches:设置inotifywait或inotifywatch命令可以监视的文件数量

max_user_instance:设置每个用户可以运行的inotifywait或intoifywait命令的进程数

2、最好写入到/etc/rc.local自启文件中,防止重启后失效:

echo '655350'> /proc/sys/fs/inotify/max_queued_events

echo '655350' > /proc/sys/fs/inotify/max_user_watches

6、inotify实时备份的更多相关文章

  1. sersync+inotify实时备份数据

    Sersync项目简介与框架 简介 Sersync项目利用inotify与rsync技术实现对服务器数据实时同步的解决方案,其中inotify用于监控sersync所在服务器上文件系统的事件变化,rs ...

  2. 实时备份工具之inotify+rsync

    1.inotify简介 inotify 是一个从 2.6.13 内核开始,对 Linux 文件系统进行高效率.细粒度.异步地监控机制, 用于通知用户空间程序的文件系统变化.可利用它对用户空间进行安全. ...

  3. 通过rsync+inotify实现数据的实时备份

    我讲到过利用rsync实现数据的镜像和备份,但是要实现数据的实时备份,单独靠rsync还不能实现,本文就讲述下如何实现数据的实时备份. 一.rsync的优点与不足 与传统的cp.tar备份方式相比,r ...

  4. rsync+inotify实现数据的实时备份

    一.rsync概述 1.1.rsync的优点与不足 rsync与传统的cp.tar备份方式相比,rsync具有安全性高.备份迅速.支持增量备份等优点,通过rsync可以解决对实时性要求不高的数据备份需 ...

  5. 通过rsync+inotify实现数据的实时备份(多台备份机)

    在前面的博文中,我讲到过利用rsync实现数据的镜像和备份,但是要实现数据的实时备份,单独靠rsync还不能实现,本文就讲述下如何实现数据的实时备份. 一.rsync的优点与不足  与传统的cp.ta ...

  6. 通过rsync+inotify实现数据的实时备份 【转载】

       在前面的博文中,我讲到过利用rsync实现数据的镜像和备份,但是要实现数据的实时备份,单独靠rsync还不能实现,本文就讲述下如何实现数据的实时备份. 一.rsync的优点与不足  与传统的cp ...

  7. 搭建rsync+inotify实现实时备份

    一.环境搭建说明 系统环境 CentOS7.5 备份节点 主机名:backup01 IP地址:172.16.2.41 数据节点 主机名:nfs-master IP地址:172.16.2.31 二.在备 ...

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

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

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

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

随机推荐

  1. 攻防世界(三)Web_php_unserialize

    攻防世界系列:Web_php_unserialize 0x01.代码审计 1.类Demo中struct().destruct()函数分别在代码执行开始和结束时调用.而wakeup函数会在代码执行过程中 ...

  2. jmeter while控制器踩坑

    在使用jmeter测试一个复杂流程,需要用到while控制器,对于里面的contition,使用jexl3方式,怎么看都没有问题,可是死活跳不出流程,各种莫名其妙的报错,甚至用单个写死的变量(已设置为 ...

  3. Redis 为什么使用跳跃表

    引言 跳跃表是一种有序的数据结构,它通过在每个节点中维持多个指向其他节点的指针,从而达到快速访问节点的目的. 什么是跳跃表 对于一个单链表来讲,即便链表中存储的数据是有序的,如果我们要想在其中查找某个 ...

  4. DOCKER学习_011:使用Dockerfile制作docker镜像

    前面使用commit的方式,制作一个docker镜像,本次介绍使用Dockerfile制作一个dockers镜像 [root@docker-server3 ~]# mkdir /openssh [ro ...

  5. GPIO端口上拉下拉 与 硬件图的上拉下拉

    硬件图上的上拉下拉: 没有触发时默认接到IO的是高电平就是上拉: 没有触发时默认接到IO的是低电平就是 下拉: (2)对应GPIO的配置 配置与你的外围电路息息相关: 比如下图: 你只能配置为上拉: ...

  6. Java反射机制详情

    1.运行环境 JDK8+lntellij IDEA 2018.3 2.反射机制是什么 反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意一个 ...

  7. Deeplearning知识蒸馏

    Deeplearning知识蒸馏 merge paddleslim.dist.merge(teacher_program, student_program, data_name_map, place, ...

  8. CVPR2020:点云弱监督三维语义分割的多路径区域挖掘

    CVPR2020:点云弱监督三维语义分割的多路径区域挖掘 Multi-Path Region Mining for Weakly Supervised 3D Semantic Segmentation ...

  9. 简化可视SLAM应用程序的开发

    简化可视SLAM应用程序的开发 Easing the development of visual SLAM applications 同步定位和映射(SLAM)描述了一个设备(如机器人)使用传感器数据 ...

  10. 反汇编EXE添加一个启动时的消息框

    反汇编EXE添加一个启动时的消息框 最近有一个要修改PE文件的需求,就先从EXE文件下手吧,我也是初学一个小时而已,不过之前接触过一点汇编罢了,这篇文章算是个DEMO,主要的思路是将其反汇编得到汇编代 ...