一、说明

最近在做一些主机的自动化检查操作,每次都是定时主动去扫描。这种方式一是实时性不佳,二是扫描时会陡然给中心机很大的压力。后来想有没有一种主机上的配置如果发生变动就能主动上报的机制,如果能主动上报一又解决了实时性问题,二也解决了中心机压力的问题。

二、Shell脚本实现

2.1 基本使用

安装:

yum install inotify-tools

使用格式:

# 使用格式

inotifywait [-hcmrq] [-e ] [-t ] [--format ] [--timefmt ] [ ... ]

# 最常用格式举例

# 持续监控/etc/passwd文件被修改事件

inotifywait-m -e modify /etc/passwd# 持续监控/tmp目录及其子目录下的所有事件

inotifywait-m -r /tmp

2.2 实现示例

在一个终端窗口中开启监控:

在另外一个终端窗口中执行命令:

再回头看第一个窗口,显示如下:

三、Python实现

3.1 基本使用

安装:

pip install pyinotify

使用格式:

(base) [root@ls-virtual-machine ~]# python -m pyinotify -h

Usage: pyinotify.py [options] [path1] [path2] [pathn]

Options:-h, --help show this help message and exit-v, --verbose Verbose mode-r, --recursive Add watches recursively on paths-a, --auto_add Automatically add watches on new directories-g, --glob Treat paths as globs-e EVENT[,...], --events-list=EVENT[,...]

A comma-separated list of events to watch for -see

the documentationforvalid options (defaults to

everything)-s, --stats Display dummy statistics-V, --version Pyinotify version-f, --raw-format Disable enhanced output format.-c COMMAND, --command=COMMAND

Shell command to run upon event

3.2 使用示例

在一个终端窗口中开启监控:

在另一个终端窗口中执行命令:

再回头看第一个窗口,显示如下:

3.3 代码使用示例

将以下代码保存成test.py:

import pyinotify

# Watch Manager

wm=pyinotify.WatchManager()

# 监听文件创建事件和文件删除事件

mask= pyinotify.IN_CREATE |pyinotify.IN_DELETE

class EventHandler(pyinotify.ProcessEvent):

# 如果文件创建事件发生,则要执行的代码

def process_IN_CREATE(self, event):

print(f"Creating: {event.pathname}")

# 如果文件删除事件产生,则要执行的代码

def process_IN_DELETE(self, event):

print(f"Removing: {event.pathname}")

handler=EventHandler()

notifier=pyinotify.Notifier(wm, handler)

wdd= wm.add_watch('/tmp', mask, rec=True)

# 持续监控

notifier.loop()

在一个终端窗口中运行该文件:

在另一个终端窗口中执行命令:

再回头看第一个窗口,显示如下:

参考:

监控linux空间变化,Linux监控文件变化及主动上报实现相关推荐

  1. Linux定期监视某文件变化,监控Linux文件变化,防止服务器被黑

    运维服务器比较头疼的一个问题是系统被黑,沦为肉鸡或者矿机.除了加强安全基线配置,加强网络和端口加固,系统和应用bug修复,上IDS/IPS(入侵检测/防御系统)之外,另一个方面就是系统监控,一个完善准 ...

  2. delphi 监控文件变化_监控Linux文件变化,防止系统被黑

    运维服务器比较头疼的一个问题是系统被黑,沦为肉鸡或者矿机.除了加强安全基线配置,加强网络和端口加固,系统和应用bug修复,上IDS/IPS(入侵检测/防御系统)之外,另一个方面就是系统监控,一个完善准 ...

  3. 解压出来的文件md5会改变吗_监控Linux文件变化,防止系统被黑

    运维服务器比较头疼的一个问题是系统被黑,沦为肉鸡或者矿机.除了加强安全基线配置,加强网络和端口加固,系统和应用bug修复,上IDS/IPS(入侵检测/防御系统)之外,另一个方面就是系统监控,一个完善准 ...

  4. [SHELL]监控LINUX目录文件变化

    最近看到群里有人聊到他们的服务器最近被挂马,然后想利用一个脚本能够实时监控web目录下文件的变化,也就是对该目录的增删改操作都会记录到相应日志下. 当时感觉这个功能的确实有点意思,所以网上查阅了些资料 ...

  5. Python监控目录和文件变化

    原文:https://www.cnblogs.com/lcamry/p/8392376.html Python监控目录和文件变化 一.os.listdir import os, time path_t ...

  6. linux如何运行sh监控文件夹,如何使用Shell进行文件监控?

    导读 文件监控可以配合rsync实现文件自动同步,例如监听某个目录,当文件变化时,使用rsync命令将变化的文件同步.(可用于代码自动发布) inotify 是linux内核的一个特性,在内核 2.6 ...

  7. Python监控文件变化:watchdog

    Python监控文件变化有两种库:pyinotify和watchdog.pyinotify依赖于Linux平台的inotify,后者则对不同平台的的事件都进行了封装.也就是说,watchdog跨平台. ...

  8. Shell 监控文件变化

    作者:youxin 链接:https://www.cnblogs.com/youxin/p/13816303.html 文件监控可以配合rsync实现文件自动同步,例如监听某个目录,当文件变化时,使用 ...

  9. 神器推荐!一个能监控文件变化的Python神器—看门狗

    假设现在有一个应用场景,需要对文件系统进行监控,发生变化时产生日志,对新增的文件做一些相应的操作. 比如说应用到我们之前的音乐高潮提取器:若当前文件夹下增加了一个音乐文件,监控器就调用音乐高潮提取器, ...

最新文章

  1. 太极图正确画法_小小太极图,暗藏大乾坤!您真的看懂了这张“中华第一图”?...
  2. git bash退回上一个文件夹
  3. ‘FactorAnalyzer‘ object has no attribute ‘analyze‘和fa.loadings改成fa.loadings报错解决
  4. Java queue总结
  5. ITK:使用基于多尺寸Hessian的量度来分割血管
  6. C++结构体实例和类实例的初始化
  7. LeetCode 529. 扫雷游戏(广度优先搜索BFS/深度优先搜索DFS)
  8. 【笔记】LR配置ODBC连接数据库进行参数化(mysql )未完待续
  9. java xml解析器_Java XML解析器
  10. 《剑指offer》面试题41/42——和为s的两个数字VS和为s的连续正数序列(C++代码实现)
  11. erase函数的用法
  12. 入门ASP.NET Core,你该怎么学?
  13. mysql数据库配置步骤,MySQL数据库安装配置步骤详解
  14. 程序员有哪些职业发展方向呢?Linux运维
  15. 免费采集器-网页数据采集器
  16. 印度黑客号称世界第一,结果第二天被中国黑客干掉了
  17. 序列周期性与魔术(一)——数学里的函数周期性
  18. 有向图 G=(V, E) 的拓扑排序
  19. 九联AX1800 WiFi6路由 真香评测
  20. 基于.Net TcpListener 实现 WebSocketServer 通讯

热门文章

  1. Java中resource文件夹
  2. 计算机游戏的英语怎么写,电脑游戏英语怎么写
  3. 【Leetcode】那些年四数之和下的评论
  4. 【Paddle】解压文件到指定文件夹
  5. github使用ssh key
  6. VTK修炼之道28:图像统计_灰度直方图计算
  7. window的onresize执行多次的解决方法
  8. Delphi 与 C/C++ 数据类型对照表
  9. ASP.NET中Get和Post的用法
  10. leetCode刷题第一天--求两数之和