什么是inotify?

  拥有强大、粒细粒度、异步文件系统事件监控机制,监控文件系统中添加、删除、修改、移动等各种事件

  版本支持: 内核 2.6.13以上版本,inotify-tools 是实施监控的软件

  同类软件: 国人 周洋 在金山公司开发sersync

inotify环境搭建

  1. rsync服务器 rsync --daemon 已经搭建

  2. 检查客户端是否支持

uname -r                             # 检查内核版本是否大于2.6.13

ls -l /proc/sys/fs/inotify        # 检查是否有这个目录,没有支持不了

rpm -aq inotify-tools            # 检查软件是否安装

# 没安装通过 yum install -y inotify-tools 安装

# 如果这个安装不了,安装阿里的epel源

# rpm -ivh https://mirrors.aliyun.com/epel/epel-release-latest-6.noarch.rpm

  3. 这个软件安装了两个命令 inotifywait 和 inotifywatch

这两个命令有什么区别?

inotifywait

    在被监控的文件或目录上等待文件系统事件,执行后处于堵塞状态,适合在shell脚本中

  重要的参数: man inotifywait

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

   -e                  # 指定文件系统事件, close_write 关闭写

  # 写文件过程: 打开文件,写文件,关闭文件

  -r                   # 递归查询目录

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

  --timefmt       # 格式化时间显示 %y/%m%d %H:%M

  --format        # %T %w%f   显示更改文件名格式

  inotifywatch:

    统计文件系统时间发生次数,做统计

inotify简单使用
       1. 监控
/data目录

inotifywait -mrq --timefmt '%Y/%m/%d %H:%M' --format '%T %w%f' -e create /data/

# 这个只监控 create
# delete 删除,删除并不需要打开文件; close_write 追加、修改文件、新增文件

2. 往 /data 目录下写文件,将会看到输出

如何做实时备份?

当 inotify 监控到目录触发事件,然后触发 rsync备份

写一个脚本

mkdir /server/scripts -p             # 创建脚本目录
cd /server/scripts vim realtime_rsync_nfs.sh # 创建实时备份脚本
#!/bin/bash
# realtime rsync /data to backup
# master beimenchuixue monitor_dir=/data/
backup_ip=172.16.1.15
login_user=backup_rsync
moudel_name=backup
rsync_passwd_file=/etc/rsync.password /usr/bin/inotifywait -mrq --format '%w%f' -e create,close_write,delete $monitor_dir \
|while read file
do
/usr/bin/rsync -avz $monitor_dir --delete $login_user@$backup_ip::$moudel_name --password-file=$rsync_passwd_file
done

  

sh -x realtime_rsync_nfs.sh      # 测试

  

NFS备份可以考虑 --delete 方式,要求无差异备份

还有个命令也可以检测目录变化 watch

linux_inotify的更多相关文章

随机推荐

  1. 【转】Python 爬虫的工具列表【预】

    这个列表包含与网页抓取和数据处理的Python库 网络 通用 urllib -网络库(stdlib). requests -网络库. grab – 网络库(基于pycurl). pycurl – 网络 ...

  2. 微信小程序节点查询方法:wx.createSelectorQuery()的使用场景与注意事项

    小程序由于内置于微信,这使得它有了得天独厚的宣传和使用优势,本着学习的心态,我在官网上看了一遍开发文档,大致得出小程序框架的设计模式与使用注意事项(重点来了,其实开发文档某些方面叙述的并不仔细,甚至存 ...

  3. 读汤姆大叔《JavaScript变量对象》笔记

    一段简单的JavaScript代码思考 先看一段简单的代码,打印结果是??为什么why?? 从上述打印结果不难看出,在打印基本变量num.函数表达式fn.函数声明fun时,就已经知道变量num.函数表 ...

  4. sprintf的用法

    正文:printf 可能是许多程序员在开始学习C 语言时接触到的第二个函数(我猜第一个是main),说起来,自然是老朋友了,可是,你对这个老朋友了解多吗?你对它的那个孪生兄弟sprintf 了解多吗? ...

  5. 基于input子系统的sensor驱动调试(一)

    要想弄明白世界的本质,就要追根溯源:代码也是一样的道理: 最近调试几个sensor驱动,alps sensor驱动.compass sensor驱动.G-sensor驱动都是一样的架构: 一.基于in ...

  6. 用Windbg来分析.Net程序的dump

    介绍 1. 什么是Windbg WinDbg是微软发布的一款相当优秀的源码级(source-level)调试工具,可以用于Kernel模式调试和用户模式调试,还可以调试Dump文件. WinDbg是微 ...

  7. 让你的Capslock键变废为宝

    Capslock 键的劣性 如果你是 Windows 系统用户,就会发现,很多时候我们是用不到 Capslock 键的.Capslock 键是切换大小写的锁定,而在平常工作中,只要摁住 Shift 键 ...

  8. Python3基础1

    Python介绍及特点 发展史 Python 2 or 3? 安装Python3 Hello World程序 变量 用户输入 模块初识 .pyc是个什么? 数据类型初识 数据运算 表达式if ...e ...

  9. 深入一致性哈希(Consistent Hashing)算法原理,并附100行代码实现

    转自:https://my.oschina.net/yaohonv/blog/1610096 本文为实现分布式任务调度系统中用到的一些关键技术点分享——Consistent Hashing算法原理和J ...

  10. python制作wifi破解(跑字典(单线程))

    很鸡巴简单,接上一篇文章 import pywifi import sys import time from pywifi import const def test_wifi_connect(pas ...