什么是auditThe Linux Audit Subsystem is a system to Collect information regarding events occurring on the system(s)Kernel events (syscall events)User events (audit-enabled programs)syslog会记录系统状态(硬件警告、软件的log), 但syslog属于应用层, log归咎与软件, 并不会记录所有动作. 于是audit来记录更多信息。audit命令auditctl audit系统管理工具,用来获取状态,增加删除监控规则。ausearch 查询audit log工具aureport 输出audit系统报告auditctl示例auditctl -w /etc/passwd -p war -k password_fileauditctl -w /tmp -p e -k webserver_watch_tmp-w 监控文件路径 /etc/passwd,-p 监控文件筛选 r(读) w(写) x(执行) a(属性改变)-k 筛选字符串,用于查询监控日志auditctl -a exit,never -S mountauditctl -a entry,always -S all -F pid=1005-S 监控系统调用-F 给出更多监控条件(pid/path/egid/euid等)auditctl -D 删除所有的rule

日志查询设置了监控后,会在/var/log/audit/audit.log里出现日志。可以用此命令查看日志:ausearch -f /etc/passwd -x rm-k  利用auditctl指定的key查询-x  执行程序# ausearch -ts today -k password-file# ausearch -ts 3/12/07 -k password-file-ts 指定时间后的log (start time)-te 指定时间前的log (end time)audit库libaudit和libaudit-python不过完全找不到文档。我也觉得这个东西用得上的时候不多。除非.....

什么是inotifyinotify 是文件系统事件监控机制,是细粒度的、异步的机制。inotify is a Linux kernel subsystem that acts to extend filesystems to notice changes to the filesystem, and report those changes to applications. It replaces an earlier facility, dnotify, which had similar goals.原理和实现http://www.ibm.com/developerworks/cn/linux/l-inotifynew/http://en.wikipedia.org/wiki/Inotifyinotifywait in shell此命令会在inotify事件发生的时候阻塞,使之便于脚本应用。简单的示例

#!/bin/bash

inotifywait -mrq --event create,delete,modify,move --format '%w %e' /path | while read w e; do

if [ "$e" = "IGNORED" ]; then

continue

fi

rsync -az --delete $w username@ip:$w

done

另外一个例子:

#!/bin/sh

inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %f' \

-e close_write /home/ottocho | while read date time file;

do

rsync /home/ottocho/${file} ottocho::backup

echo "Inof: ${date} ${time}, ${file} backed up"

done

inotify与rsync很多人利用inotify和rsync实现实时同步文件,而基于inotify API和rsync command的sersync解决了这个问题。http://code.google.com/p/sersync/python与inotifyinotify有两个python库,pyinotify和inofityx.区别在inotifyx的官网上作者如是说道:inotifyx是C的拓展,没有使用ctypes,因此速度更快、在inotify的API变化时会更少出现问题。inotifyx是inotify更轻的封装。pyinotify更复杂,它提供了很多inotifyx没有的特性,可这些特性在大多数情况下未必需要。inotifyx提供的API是基本不变的简易的。http://www.alittletooquiet.net/software/inotifyx/http://pyinotify.sourceforge.net/inotifyx以下是一个源自源代码的例子,非常简易,注释就不必了吧

#!/usr/bin/env python

importpyinotify

importos

importsys

classWatchLogProceesing(pyinotify.ProcessEvent):

defprocess_IN_CLOSE_WRITE(self, event):

print"processing %s"% (event.pathname)

defmonitor_dir(directory):

wmn = pyinotify.WatchManager()

notifier = pyinotify.Notifier(wmn, WatchLogProceesing())

wmn.add_watch(directory, pyinotify.IN_CLOSE_WRITE)

notifier.loop()

monitor_dir("/home/ottocho")

pyinotifypyinotify是更出名功能更全面的库。以下是一个超级简单的示例。

#!/usr/bin/env python

importpyinotify

importos

importsys

classWatchLogProceesing(pyinotify.ProcessEvent):

defprocess_IN_CLOSE_WRITE(self, event):

print"processing %s"% (event.pathname)

defmonitor_dir(directory):

wmn = pyinotify.WatchManager()

notifier = pyinotify.Notifier(wmn, WatchLogProceesing())

wmn.add_watch(directory, pyinotify.IN_CLOSE_WRITE)

notifier.loop()

monitor_dir("/home/ottocho")

附:

今天有一个文件总是被修改,为了找出此原因故用了此方法进行查看此文件是怎么被修改的

先设定被监控的文件

auditctl -w /usr/local/apache/htdocs/index.php war -k index_php

经过几分钟里面的内容被 修改

查看方法ausearch -ts today -k index_php

也可以把此文件输出到一个文件进行查看

ausearch -ts today -k index_php >> /tmp/logs/index_php

查看被监控的文件方法为 auditctl -l

删除所有 的文件监控 auditctl -D

PHP Linux监控文件变化,文件监控与通知机制 audit inotify相关推荐

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

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

  2. 你真的懂Linux内核中的阻塞和异步通知机制吗?(花了五天整理,墙裂推荐!)

    工科生一枚,热衷于底层技术开发,有强烈的好奇心,感兴趣内容包括单片机,嵌入式Linux,Uboot等,欢迎学习交流! 爱好跑步,打篮球,睡觉. 欢迎加我QQ1500836631(备注CSDN),一起学 ...

  3. linux inotify-tools 监控文件变化

    inotify-tools 是一个用C语言库,一个为Linux提供简单inotify接口的命令行程序.这些程序可以用于监视文件系统事件并执行相应操作.这些程序是用C语言来写的,除了需要Linux内核的 ...

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

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

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

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

  6. 使用auditd监控Linux的文件变化

    2019独角兽企业重金招聘Python工程师标准>>> 如果没有auditd的话,使用yum安装安装即可 以linux监控/tmp/xxx.dat为例: # vi /etc/audi ...

  7. 监控linux空间变化,Linux监控文件变化及主动上报实现

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

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

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

  9. python中文件变化监控-watchdog

    起步 在python中文件监控主要有两个库,一个是pyinotify,一个是watchdog.pyinotify依赖于Linux平台的inotify,后者则对不同平台的的事件都进行了封装.因为我主要用 ...

最新文章

  1. 通过改进算法来优化程序性能的真实案例(Ransac)
  2. WCF 绑定(Binding)
  3. 常用模块-----configparser subprocess
  4. Linux shell script 的语法汇总
  5. idea打包meven镜像_Intelij IDEA中修改maven为国内镜像
  6. html资源文件记载进度条,HTML5矢量实现文件上传进度条
  7. 《C++ Primer Plus》读书笔记之七—内存模型和名称空间
  8. 工厂方法模式java实例,设计模式之工厂方法模式实例(Java)
  9. lol云顶之奕助手_云顶之奕小小英雄介绍 除了棋子以外它也很重要!
  10. SQLServer如何在批量插入后,获取批量插入的自增列的值
  11. 计算机网络实验——华为eNSP模拟器常用命令总结(总结的非常详细( •̀ .̫ •́ )✧快来看啊)
  12. extremecomponents -- 文档下载依赖使用
  13. 线程创建的三种方式和线程池创建的四种方式
  14. NetFlow网络流量分析
  15. 如何选择剑桥英语KET,PET课程和老师
  16. 自定义按键鼠标,献给电脑重度的江湖人
  17. 赴日软件工程师,据说很火
  18. 监护仪系统都是Linux吗,基于Linux和MCU的心电监护仪设计
  19. JavaWeb面试(史上最全的面试介绍,文字内容可以有点枯燥,可以关注一波在慢慢看)
  20. 小红书最新用户量数据_近半年DAU峰回路转 重新审视小红书用户价值

热门文章

  1. Java-静态变量和实例变量
  2. 【云原生Docker篇】Docker的容器管理操作
  3. SQuAD 数据预处理(1)
  4. 2022年起重机械指挥操作证考试题模拟考试平台操作
  5. 哈工大:ChatGPT调研报告
  6. 昆西·拉尔森(Quincy Larson)的简短访谈:了解开始免费的代码老师
  7. 【C生万物】 指针篇 (初级)
  8. 高中学历,汽修转行自学Python,月薪翻了三倍【经验分享】
  9. 使用notability时 iPad pro屏幕中间发热
  10. 人工智能 | ShowMeAI资讯日报 #2022.06.09