inotify事件监控工具

1、①inotify是干啥的 ②为什么要用它 ③它是通过什么方式来保障存储数据安全的?

2、 Yum安装inotify-tools步骤:

which wget

yum -y install wget

wget -O /etc/yum.repos.d/epel.repo http://files.tttidc.com/centos6/epel-6.repo

ls /etc/yum.repos.d/  显示epel-6.repo证明下载成功

yum -y clean all

yum makecache

yum -y install inotify-tools  安装inotify-tools

rpm -qa inotify-tools          显示inotify-tools已安装则正常

which inotifywait               显示inotifywait已安装则正常

3、inotifywait监控命令 用法:

参数:m 守护进程(不写m则不持续输出,即仅监控并输出一次,就跳出监控动作),

r 递归,

q 简化输出    一般mrq联用,即持续监控目录即下属所有内容的变动b并输出到屏幕

--exclude 排除文件或目录时,不区分大小写

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

--format 指定输出格式 ,常与%T %w %f

-e  后边加具体事件。通过此参数可以指定需要监控的事件(Events),如下所示:

access    文件或目录被读取

modify   文件或目录内容被修改

attrib     文件或目录属性被改变

open      文件或目录被打开

moved_to  文件或目录被移动至另外一个目录

delete     文件或目录被删除

umount    文件系统被卸载

move      文件或目录被移动到另一个目录或从另一个目录移动至当前目录

create     文件或目录被创建在当前目录

close     文件或目录封闭,无论读/写模式 (常用组合close_write,即修改。注意:创建也是一种修改,故create和close_write联用时,即使只创建一个文件,会在监控记录里输出二次,文件并没有多,只是输出了一次创建,又输出了一次修改,工作中做好区分;create,close_write,delete即监控所有形式的变化)

%T   时间,对应 %y %m %d %H %M  年 月 日 时 分

%w   路径

%f   文件名

实操:例3.1实时监控本地数据变化,输出时带时间(带时间参数)

①mkdir -p /backup  在本机创建/backup目录

②inotifywait -mrq --timefmt '%y %m %d %H %M' --format '%T %w%f' -e create,close_write,delete /backup/  持续监控本机/backup目录下所有内容的创建,修改,删除记录,如有变化实时输出到屏幕上

③再把本机当前主xhell窗口复制一个新窗口,在新窗口操作

cd /backup,

touch {1..3}

④再回到主窗口中,发现已实时输出新增文件这个变动

(同理,在第③步新窗口中删除主机/backup下某文件,第④步也会实时输出变动情况)

例3.2、实时监控本地数据变化,输出不带时间(不带时间参数)

前提:配置好/etc/rsyncd.conf 并开启rsync,详见p88 三、服务器(监听)模式

cd /backup      进入到主机窗口/backup目录

inotifywait -mrq  --format '%w%f' -e create,close_write,delete /backup/

touch 1.txt     再到另一个新xshell窗口新建文件

主机窗口显示/backup/1   此时主机窗口以不带时间输出此格式的路径,完毕。

3.3本地模式下的/back 和/back2进行监控同步

①mkdir -p /backup2  在客户端主机下创建/backup2目录

mkdir -p /service/scripts

cd /service/scripts

vim inotifywait.sh

#!/bin/bash

/usr/bin/inotifywait -mrq --format '%w%f' -e -create,delete,close_write /backup | while read line

do    | 将左边的数据传给while,通过read从屏幕输入给变量line

cd /backup

rsync -az ./ /backup2 --delete

done    保存退出

sh inotifywait.sh   开始监控/back,一旦变化就传给/backup2

②下边用xshell复制新建2个ssh渠道,并分以下操作:

cd /backup 进入客户端主机窗口并进入/back目录

touch abc    创建3个文件

ls /backup2发现/backup下的3个文件已同步到/backup2下,则成功。

3.4socket监听模式 (服务器模式)①②③④⑤⑥⑦⑧⑨⑩

服务部署:写一个脚本,用rsync做一个程序监听873服务端口,其他客户端把数据推进服务端口,rsync会自动保存。(客户端可以有多个,不用指定哪个目录,推进端口就行)

3.4.1、配置server服务端:

①vim /etc/rsyncd.conf  写rsync的配置文件,原本没有需要自己写

uid = rsync              可用此服务的账号是rsync

gid = rsync              组账号是rsync

use chroot = no          安全设置:不可以更改root权限

max connections = 200   最大支持连接200个客户端

timeout = 300               连接超时时间300秒

pid file = /var/run/rsyncd.pid    pid文件保存位置

lock file = /var/run/rsync.lock   文件锁

log file = /var/log/rsyncd.log    日志保存位置

#############################  以上是全局生效参数,以下是模块参数

[backup]            模块名称

path= /backup/     将模块的存储路径设为/backup

ignore errors      忽略出现的错误错误

read only = false  关闭只读,即可以读写

list = false       关闭客户端查看服务端的权限,即禁止客户端查看服务端

hosts allow=192.168.71.0/24  允许推送到服务端的客户端的网段范围

hosts deny = 0.0.0.0/32       掩码32,即4个255,不拒绝任何ip地址

auth users = rsync_backup   建虚拟账号rsync_backup推数据时须身份验证

secrets file = /etc/rsync.password   设定存放密码文件的位置  保存退出

(需要在此路径下创建1个文件,用于存放虚拟账户rsync_backup的密码)

②useradd -M -s /sbin/nologin rsync   创建程序用户rsync

③mkdir /backup   创建指定存放目录,ll -d /backup已存在则正确

④vim /etc/rsync.password    创建存放密码的文件rsync.password

rsync_backup:123456     以 账户名:密码 的格式保存密码  保存退出

⑤chmod 600 /etc/rsync.password 必须把密码文件权限设为600,高了执行不了,且因有密码禁止其他用户查看

ll /etc/rsync.password  查看密码文件权限是否修改成功

⑥ll -d /backup 数据存储目录的属主和属组都是root即权限为755;而rsync是程序用户权限,客户端将数据推进端口后,服务端rsync会收到数据然后写入/backup中,意味着rsync程序应具备写权限而现在写不了,因此要修改/backup目录的属主

chown rsync /backup  /backup目录的属主更改为rsyncrsyc才能把传入的数据写进此目录

rsync -–daemon 启动(ps -ef | grep -v grep | grep rsync查是否运行)

netstat -antup | grep 873   打开监听模式,rsync默认监听873端口

cd /backup   转到服务端根下的backup目录

rm -rf *     清空数据目录       此时服务端已配完

3.4.2、配置client客户端,并按需选择以下方案执行:

方案-本地增量同步(需要密码):

cd /backup/  转到客户端根下的backup目录

touch {1..10}  创建10个文件

rsync -avz /backup/ rsync_backup@192.168.71.131::backup

123456  输入之前配置好的虚拟账户rsync_backup的密码123456  显示同步成功(此模式rsync将客户端/backup下的数据推进到192.168.71.131服务器的873端口的/backup模块下,再由这个模块转到指定目录下)

方案二:本地免密码完全增量同步:既要免密码,又要完全增量同步(使二台机器内容完全同步)

cd /backup/  转到客户端根下的backup目录

vim /etc/rsync.password 想免密码,在客户端/backup下也须创建密码文件

123456   密码文件内只需要写密码就行,须和服务端创建的虚拟账户密码一致

chmod 600 /etc/rsync.password  将密码文件权限设为600 可用ll验证

touch 1 2 3    在服务端/backup下创建2 3 4 共3个文件

touch 2 3 4    在客户端/backup下创建2 3 4 共3个文件

rsync -avz /backup/ rsync_backup@192.168.71.133::backup --password-file=/etc/rsync.password --delete  免密码完全增量同步(你没有我给你,我没有我给你删掉,让咱俩都一样)

ls /backup   分别在客户端服务端查看此目录,显示2 3 4共3 个文件,文件已完全增量同步

方案三:用inotify脚本配合rsync监听模式(第三种)下免密码完全增量同步:写个脚本,既要监听模式,又要免密码,又要完全增量同步(使二台机器内容完全同步),免密同步方便将rsync功能写入脚本。

mkdir -p /service/scripts  创建存放脚本的目录

cd /service/scripts         进入存放脚本的目录

vim inotifywait.sh          创建脚本编辑以下内容:

#!/bin/bash

#已知服务端ip为192.168.71.133

/usr/bin/inotifywait -mrq --format '%w%f' -e create,delete,close_write /backup | while read line

do    | 将左边的数据传给while,通过read从屏幕输入给变量line

cd /backup

rsync -az ./ –delete rsync_backup@192.168.71.133::backup

--password-file=/etc/rsync.password

done    保存退出

chmod +x inotifywait.sh   给脚本加上x执行权限;

用xshell复制一个客户端新窗口并cd /service/scripts目录,然后在服务端窗口cd /backup目录,然后回到主窗口执行下列操作:

sh inotifywait.sh  在主窗口执行脚本,开始监控客户端和服务端下各自下边的/backup目录,一旦变化就相互完全增量同步,但并不输出到屏幕,需要自己手动查

cd /backup 进入客户端主机窗口的/backup目录

touch 1 2 3    在服务端/backup下创建2 3 4 共3个文件

touch 2 3 4    在客户端/backup下创建2 3 4 共3个文件

ls /backup   分别在客户端服务端查看此目录,显示2 3 4共3 个文件,文件已完全增量同步

方案四:3.4.1配置server服务端方案3写入脚本,vim inotifywait2.sh按照教案操作

注意:1、服务端和客户端的防火墙都关掉,避免连接失败 2、避免写错内容导致执行失败

【inotify事件监控工具】相关推荐

  1. inotify事件监控

    一.原理: inotify事件监控,可以监控文件系统中添加,删除,修改,移动等各种事件,一旦发现数据彼此不同,会通知rsync同步推送数据.inotify + rsync可以时时同步 二.准备工作 1 ...

  2. ajax跨界表单,ajax使用jsonp解决跨域问题

    ubuntu环境配置 网络配置 主要文件:/etc/network/interfaces,这里是IP.网关.掩码等的一些配置: # This file describes the network in ...

  3. SSH连接原理及ssh-key

    2019独角兽企业重金招聘Python工程师标准>>> Linux实战教学笔记24:SSH连接原理及ssh-key 目录 第二十四节 SSH连接原理及ssh-key讲解 第1章 SS ...

  4. linux 高效的文件系统事件监控 内核级解析方案 inotify

    转载 http://www.lvtao.net/config/inotify.html linux 高效的文件系统事件监控 内核级解析方案 inotify 安装inotify-tools (http: ...

  5. linux inotify 监控文件系统事件

    1. Inotify 机制概述 1.1. Inotify 介绍 在日常的运维过程中,经常需要备份某些文件,或者对系统的某些文件进行监控,比如重要的配置文件等.如果需要作到实时同步或者监控,就需要使用内 ...

  6. Linux下同步工具inotify+rsync使用详解

    1. rsync 1.1 什么是rsync rsync是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件.它使用所谓的"Rsync演算法"来使本地和远程两个主机之 ...

  7. (openssh、telnet、vsftpd、nfs、rsync、inotify、samba)

    (openssh.telnet.vsftpd.nfs.rsync.inotify.samba) 一:OpenSSH服务与Telnet服务(必须掌握) 前言:OpenSSH是加密传输,Telnet是明文 ...

  8. Linux平台上文件同步——rsync+inotify之定时同步

    1 前言 1.1 概述 本文介绍使用rsync和 inotify-tools,实现linux 上的本地定时同步和远程定时同步的方法. 1.2 实验环境 服务器两台 操作系统: CentOS-7.4 软 ...

  9. Linux平台上文件同步——rsync+inotify之实时同步

    1 前言 1.1 概述 本文介绍使用rsync和 inotify-tools,实现linux 上的本地实时同步和本地定时同步的方法. 1.2 实验环境 服务器两台 操作系统: CentOS-7.4 软 ...

最新文章

  1. php 正确的输出json格式
  2. R语言window函数提取时序数据数据子集(subset):使用xts包将dataframe数据转化为时间序列数据(time series)、使用window函数从时间序列对象中提取数据子集
  3. 全志代码中的bug之2
  4. 云计算数据管理的4个关键因素
  5. python easygui进度条_Python _easygui详细版
  6. 混合多云架构_使用混合多云每个人都应避免的3个陷阱(第3部分)
  7. last_kmsg和ram console
  8. 跟我师兄聊天引发的思考
  9. 你看,公司状告员工不加班,居然还告赢了
  10. sql between的用法的意思_SQL 宝典——SQL 语法速成手册
  11. AttributeError: module 'labelme.utils' has no attribute 'draw_label'
  12. linux雨滴桌面,Rainmeter(雨滴桌面秀)
  13. 原来,神文竟然是汉字
  14. 蓝桥杯单片机数码管技巧
  15. 知识分享 | 什么是CAN线波特率
  16. 2020年chx的计算机保研之路系列(2)——华东师范大学计算机学院(获得优营)
  17. linux色彩配置文件,Xfce得到颜色配置文件的支持
  18. 什么命令能查看服务器的型号,查看服务器型号的命令
  19. 《web开发: Ajax 介绍》
  20. DSP在SYS/BIOS下串口(UART)接收之环形队列

热门文章

  1. 依次输入十个数 输出最大的数 C语言实现
  2. 微信小程序 open-type=contact
  3. [NOIP2017普及组]——棋盘
  4. 从内外参到 Structure From Motion(SFM)
  5. 巧用Reflections库实现包扫描(扫描某个包中某个接口实现、注解等)
  6. png格式图片背景不透明问题解决
  7. 【季报分析】台积电:核心业务依旧强劲,营收再创新高
  8. linux串口超时时间设置
  9. 计算机游戏活动总结,游戏比赛活动总结
  10. 现在什么都二维码了,我干脆用二维码写博客算了