linux 系统监控某目录下文件及文件夹的变化

inotifywait 是一个可以实时监控文件变动的工具,它利用linux内核中的inotify机制实现监控功能。

  1. 查看内核版本
  2. [[email protected]Oracle ~]# uname -r
  3. 2.6.32-220.el6.i686
  1. 安装inotify-tools
  2. yum install -y inotify-tools

测试监控/etc,inotifywait -m /etc

用putty连接服务器,开启另一个终端,用vim编辑/etc/passwd时,另一个终端显示对应的监控信息

inotifywait 命令参数说明:

-m 选项表示 monitor ,即开启监视

-r 选项表示递归监视,但是会比较慢一些,若监视/etc 目录,其中的子目录下修改文件也是能被监控到。

-e 选项指定要监控的“事件”(events)包括了:access、modify、 attrib、 close_write、 close_nowrite、close、open、 moved_to、 moved_from、move、 move_self、 create、delete、delete_self、unmount。

  1. 如果修改了/etc/passwd文件,则把这个事件记录在文件/root/modify_passwd.txt里
  2. inotifywait -m /etc/passwd -e modify > /root/modify_passwd.txt

如果不加参数-e的话,默认就是监控所有的事件,在日常运维时,这个工具可以帮助你监控服务器上重要文件和重要目录的变化情况。

时间: 2024-08-27 19:48:46

linux 系统监控某目录下文件及文件夹的变化的相关文章

Linux系统/etc/sysconfig目录下没有iptables文件

在新安装的linux系统中,防火墙默认是被禁掉的,一般也没有配置过任何防火墙的策略,所有不存在/etc/sysconfig/iptables文件. 解决办法: 1.键入以下命令,新建文件 2.复制以下代码,此代码默认开启80,3306,22端口 # Firewall configuration written by system-config-firewall# # Manual customization of this file is not recommended.*filter:INPU

[Erlang_Question27]如何监控指定目录下的*.beam文件,如果有改动就更新到指定的节点?

在Erlang In Anger第二章中讲到使用rebar来创建一个Erlang项目(Application或Project) 但美中不足的只是给出了指引,但没有给出详细的步骤. 下面我们就使用rebar一步步来创建一个典型的Application. 但在此之前,最好先理解下Erlang In Anger中第二章节所讲关于application结构的部分:http://zhongwencool.gitbooks.io/erlang_in_anger/ 通过本小节,你可以了解使用rebar加入开源

python学习- 打印最常用的10条linux命令和查找目录下重复的文件

一.打印最常用的10条linux命令 #!/usr/bin/python #coding=utf-8 import os from collections import Counter c = Counter() with open(os.path.expanduser('~/.bash_history')) as f: for line in f: cmd = line.strip().split() if cmd: c[cmd[0]]+=1 print c.most_common(10) 效

linux怎么实时查看目录下是否有文件生成

安装inotify-tools $ sudo apt install inotify-tools -y 创建数据和日志目录 $ sudo mkdir -p /tmp/inotifywait/log/ /tmp/inotifywait/data/ 创建日志文件 $ touch /tmp/inotifywait/log/data.log 假设在 /tmp/inotifywait/data/ 中不断生成(删除,移动)数据,/tmp/inotifywait/log/data.log 文件中记录日志 开启

Linux递归解压缩一个目录下的全部文件

gunzip -r hongchangfirst/data 怎样递归删除那些剩余的非log结尾的文件? 先列出确认一下: find hongchangfirst/data -type f ! -name "*.log" 然后真正的删除: find hongchangfirst/data -type f ! -name "*.log" -exec rm -f {} \; 记住后边-exec一定要加空格,否则会出现find: missing argument to `-

linux系统/var/log目录下的信息详解

一./var目录 /var 所有服务的登录的文件或错误信息文件(LOG FILES)都在/var/log下,此外,一些数据库如MySQL则在/var/lib下,还有,用户未读的邮件的默认存放地点为/var/spool/mail 二.:/var/log/ 系统的引导日志:/var/log/boot.log例如:Feb 26 10:40:48 sendmial : sendmail startup succeeded就是邮件服务启动成功! 系统日志一般都存在/var/log下常用的系统日志如下:核心

ARM 开发板嵌入式linux系统与主机PC通过串口传输文件

本文转载自http://useless20.blog.163.com/blog/static/237409982010227127576/ 嵌入式linux系统与主机通过串口传输文件 我想如果要从PC机下载东西到开发板的嵌入式linux系统里面,很多人首先会想到用tftp sftp等网络工具从网口下载.但如果网络用不了,只能通过串口下载怎么办呢?这个时候有两个工具能帮到你:一个是zmrx.zmtx,另外一个是lsz.lrz.个人觉得zmrx/zmtx没有lsz/lrz稳定,建议还是用后者.下面介

Python计算一个目录下的所有文件的md5值,在Linux系统下面

实现代码如下: #!/usr/bin/python #*-*coding:utf8*-* import os import sys import hashlib def md5sum(data):     with open(data, "rb") as f:         md5 = hashlib.md5()     #赋空值         for i in f.read(4096):    #防止遇到大文件打开太占用内存,所以一次打开4096字节             if

java利用WatchService实时监控某个目录下的文件变化并按行解析(注:附源代码)

首先说下需求:通过ftp上传约定格式的文件到服务器指定目录下,应用程序能实时监控该目录下文件变化,如果上传的文件格式符合要求,将将按照每一行读取解析再写入到数据库,解析完之后再将文件改名. 一. 一开始的思路 设置一个定时任务,每隔一分钟读取下指定目录下的文件变化,如果有满足格式的文件,就进行解析. 这种方式很繁琐,而且效率低,效率都消耗在了遍历.保存状态.对比状态上了! 而且无法利用OS的很多功能. 二. WatchService介绍 1. 该类的对象就是操作系统原生的文件系统监控器!我们都知