6、inotify实时备份
备份用户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实时备份的更多相关文章
- sersync+inotify实时备份数据
Sersync项目简介与框架 简介 Sersync项目利用inotify与rsync技术实现对服务器数据实时同步的解决方案,其中inotify用于监控sersync所在服务器上文件系统的事件变化,rs ...
- 实时备份工具之inotify+rsync
1.inotify简介 inotify 是一个从 2.6.13 内核开始,对 Linux 文件系统进行高效率.细粒度.异步地监控机制, 用于通知用户空间程序的文件系统变化.可利用它对用户空间进行安全. ...
- 通过rsync+inotify实现数据的实时备份
我讲到过利用rsync实现数据的镜像和备份,但是要实现数据的实时备份,单独靠rsync还不能实现,本文就讲述下如何实现数据的实时备份. 一.rsync的优点与不足 与传统的cp.tar备份方式相比,r ...
- rsync+inotify实现数据的实时备份
一.rsync概述 1.1.rsync的优点与不足 rsync与传统的cp.tar备份方式相比,rsync具有安全性高.备份迅速.支持增量备份等优点,通过rsync可以解决对实时性要求不高的数据备份需 ...
- 通过rsync+inotify实现数据的实时备份(多台备份机)
在前面的博文中,我讲到过利用rsync实现数据的镜像和备份,但是要实现数据的实时备份,单独靠rsync还不能实现,本文就讲述下如何实现数据的实时备份. 一.rsync的优点与不足 与传统的cp.ta ...
- 通过rsync+inotify实现数据的实时备份 【转载】
在前面的博文中,我讲到过利用rsync实现数据的镜像和备份,但是要实现数据的实时备份,单独靠rsync还不能实现,本文就讲述下如何实现数据的实时备份. 一.rsync的优点与不足 与传统的cp ...
- 搭建rsync+inotify实现实时备份
一.环境搭建说明 系统环境 CentOS7.5 备份节点 主机名:backup01 IP地址:172.16.2.41 数据节点 主机名:nfs-master IP地址:172.16.2.31 二.在备 ...
- rsync+inotify实时同步环境部署记录
随着应用系统规模的不断扩大,对数据的安全性和可靠性也提出的更好的要求,rsync在高端业务系统中也逐渐暴露出了很多不足.首先,rsync在同步数据时,需要扫描所有文件后进行比对,进行差量传输.如果文件 ...
- CentOS6.5实现rsync+inotify实时同步
参考博文: 参考1:CentOS6.5实现rsync+inotify实时同步 参考2:inotify-tools+rsync实时同步文件安装和配置 CentOS 6.3下rsync服务器的安装与配置 ...
随机推荐
- STM32独立看门狗(IWDG)
造成程序跑飞,只是程序的正常运行状态被打断而进入死循环,从而使单片机控制的系统无法正常工作.看门狗就是一种专门用于检测单片机程序运行状态的硬件结构. STM32内部自带了两个看门狗,独立看门狗(IWD ...
- MyBatis 缓存机制(十三)
什么是缓存 缓存就是内存中的一个对象,用于对数据库查询结果的保存,用于减少与数据库的交互次数从而降低数据库的压力,进而提高响应速度. MyBatis 缓存机制原理 Mybatis 缓存机制原理是将第一 ...
- linux 磁盘管理命令之df-(转自 Howie的专栏)
linux中df命令的功能是用来检查linux服务器的文件系统的磁盘空间占用情况.可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息. 1.命令格式: df [选项] [文件] 2.命 ...
- 10.21 nmap:网络探测工具和安全/端口扫描器
nmap命令 是一款开放源代码的网络探测和安全审核工具,是Network Mapper的缩写.其设计目标是快速地扫描大型网络.nmap可以发现网络上有哪些主机,主机提供了什么服务(应用程序名称和版本号 ...
- JDBC使用详解
第1章:JDBC概述 1.1 数据的持久化 持久化(persistence):把数据保存到可掉电式存储设备中以供之后使用.大多数情况下,特别是企业级应用,数据持久化意味着将内存中的数据保存到硬盘上加以 ...
- MySQL之数据查询语言(DQL)
数据查询语言DQL基本结构是由SELECT子句,FROM子句,WHERE子句组成的查询块: SELECT <字段> FROM <表名> WHERE <查询条件> - ...
- Python+Selenium自动化-定位一组元素,单选框、复选框的选中方法
Python+Selenium自动化-定位一组元素,单选框.复选框的选中方法 之前学习了8种定位单个元素的方法,同时webdriver还提供了8种定位一组元素的方法.唯一区别就是在单词elemen ...
- python基础知识笔记(二) (出现语法以及颜色问题)
以下是在学习Python时需要尤其要注意的点: 1.程序中出现中文,运行的时候出现如下错误: SyntaxError: Non-UTF-8 code starting with '\xc1' 则是编码 ...
- 深度学习白平衡(Color Constancy,AWB):ICCV2019论文解析
深度学习白平衡(Color Constancy,AWB):ICCV2019论文解析 What Else Can Fool Deep Learning? Addressing Color Constan ...
- 微信架构 & 支付架构(上)
微信架构 & 支付架构(上) 一. 微信和支付宝对比 这两者现在已经占领了移动支付的90%市场,支付形式也都大抵相同,只是在实现细节上略微不同.这里之所以要专门对比,是因为有些接口的不同在后边 ...