当前位置:  操作系统/服务器>linux

一个监控LINUX目录和文件变化的Shell脚本分享

    来源: 互联网  发布时间:2014-10-18

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

最近看到群里有人聊到他们的服务器最近被挂马,然后想利用一个脚本能够实时监控web目录下文件的变化,也就是对该目录的增删改操作都会记录到相应日志下。

当时感觉这个功能的确实有点意思,所以网上查阅了些资料,自己研究了下,这会儿有空写了个脚本,分享给大家,如有问题,还请大家指出。

以下我写了两个脚本:

脚本1:将需要监控的目录的原始状态保存到LOG日志
脚本2:将脚本1的原始状态与本脚本比对,如果目录文件发生变化,则将变化的内容保存到日志。

注:原理实际上利用的是du -sb输出值来判断文件的变化,再利用diff进行比对。

1.在执行脚本前要保存原始的状态:

# vi initial.sh

代码如下:

#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin/:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
# 监控的目录
DIR=/root
# 临时文件
TMP_A=/tmp/a.txt
# 遍历指定目录下的文件大小及路径并重定向到日志文件
find $DIR -print0 | xargs -0 du -sb  > $TMP_A

2.执行监控脚本
# vi monitor.sh
代码如下:

#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin/:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
# 监控的目录
DIR=/root
# 日期变量
DATE=`date +%F_%H:%M`
# 临时文件
TMP_A=/tmp/a.txt
TMP_B=/tmp/b.txt
TMP_C=/tmp/c.txt
# 日志文件
LOG=/var/log/filemodify.log
# 遍历指定目录下的文件大小及路径并重定向到日志文件
find $DIR -print0 | xargs -0 du -sb  > $TMP_B
# 比较目录变化,并将变化的文件写入日志
DIFF=$(diff $TMP_A $TMP_B)
if [[ -z $DIFF ]];
 then
   echo "Nothing change" >> $LOG
 else
   echo "Here is the change" >> $LOG
   echo "" >> $LOG
   echo "$DIFF" |awk '{print $3}'|sort -k2n |uniq |sed '/^$/d' |tee $TMP_C >> $LOG
   if [ -s $TMP_C ];
     then
       echo "" >> $LOG
       echo "It modified at $DATE" >> $LOG
# 将当前监控的目录结构覆盖为初始状态
       find $DIR -print0 | xargs -0 du -sb  > $TMP_A
   fi
fi
echo "====================================" >> $LOG
#清理临时文件
rm -rf $TMP_B $TMP_C

    
 
 

您可能感兴趣的文章:

  • 监控脚本 监控两个系统的网络状况
  • ZABBIX 监控 触发 python脚本 显示已经 触发,但是脚本没有被执行
  • 有关 脚本监控服务 问题
  • 二台配置heartbeat机器如何启动一个监控内存的脚本呢
  • 急!!!AIX上监控CPU和内存使用率的脚本
  • 关于进程监控脚本
  • 写了个监控nginx进程的Python脚本
  • shell监控脚本实例—监控mysql主从复制
  • shell监控linux系统进程创建脚本分享
  • 简单shell脚本。监控目录中文件的变化
  • linux系统使用python监控apache服务器进程脚本分享
  • Shell脚本实现的memcached进程监控
  • linux循环日志监控脚本的写法
  • 监控服务器swap并重启php的Shell脚本
  • linux无故重启,如何写个脚本监控哪个进程关闭了linux
  • 一个shell for循环与case结合的脚本(监控程序状态)
  • 监控网站是否可以正常打开的Shell脚本分享
  • 如何使用shell脚本实现监控程序消息队列阻塞情况?
  • shell脚本监控mysql主从状态
  • Shell脚本监控服务器在线状态和邮件报警的方法
  • Docker监控以及cAdvisor和Prometheus监控工具的对比
  • 网关监控(网管监控):监控员工上网内容、进出电子邮件内容、聊天内容、上传和下载内容,过滤不良网站;设置一部分电子邮件帐号只能够发
  • 针对Docker容器的监控指标
  • 业务系统监控 ​kaleido
  • Metric监控系统 node-bell
  • 网络接口监控 WMND
  • 应用监控系统 HawtIO
  • linux系统下如何监控和获取用户行为(高分悬赏)
  • 关于文件监控~~~~~~~~~~~~~
  • nagios监控不正常
  • 关于基于snmp 2c协议的linux监控问题
  •  
    本站(WWW.169IT.COM)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.169IT.COM)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 操作系统目录变化监控 jpatchwatch
  • linux如何监控某个文件内容的变化并
  • 怎么监控文件的变化(不使用轮循的方法)
  • 关于使用Ptrace系统调用监控进程问题
  • 请教关于用啥工具监控Solaris服务器的问题
  • 求助:用windows监控linux系统资源
  • 基于Linux的云监控
  • JDBC监控 Elvyx
  • linux下ftp监控的问题
  • 监控系统 Keywatch
  • 监控和数据采集系统 OpenSCADA
  • Quartz 监控工具 QuartzDesk
  • 监控工具 Osmius
  • 性能监控工具 PerfMonger
  • 流量监控软件 Bandwidthd
  • 高速集群监控系统 SuperMon
  • 系统进程监控工具 ServerUsage
  • 应用和操作系统监控工具 Habitat
  • 远程系统监控 ScopePort
  • 系统监控工具 Atop
  • 网络流量监控工具 Nethogs
  • 桌面系统监控工具 Conky
  • Web文件监控工具 WebRadar


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2017,169IT.COM,E-mail:www_169it_com#163.com(请将#改为@)

    浙ICP备11055608号