shell脚本监控目录下文件被篡改时报警

思路:

 目录下文件被篡改的几种可能:

  1.被修改

  2.被删除

  3.新增文件

 

md5命令详解

  参数:

    -b 以二进制模式读入文件内容

    -t 以文本模式读入文件内容

    -c 根据已生成的md5值,对现存文件进行校验

    --status 校验完成后,不生成错误或正确的提示信息,可以通过命令的返回值来判断

提示:md5sum 是校验文件内容,与文件名是否相同无关

[root@lamp scripts]# mkdir /tmp/test          
[root@lamp scripts]# touch /tmp/test/{a,b,c,d} 
[root@lamp scripts]# find /tmp/test/ -type f |xargs md5sum >>/tmp/test.md5    
[root@lamp scripts]# cat /tmp/test.md5 
d41d8cd98f00b204e9800998ecf8427e  /tmp/test/b                  //不同的文件的md5值是一样的,因为这些文件的内容都一样,都为空
d41d8cd98f00b204e9800998ecf8427e  /tmp/test/c
d41d8cd98f00b204e9800998ecf8427e  /tmp/test/a
d41d8cd98f00b204e9800998ecf8427e  /tmp/test/d
[root@lamp scripts]# echo "haha" >/tmp/test/b                             
[root@lamp scripts]# >/tmp/test.md5                                       
[root@lamp scripts]# find /tmp/test/ -type f |xargs md5sum >>/tmp/test.md5
[root@lamp scripts]# cat /tmp/test.md5         
7494ab07987ba112bd5c4f9857ccfb3f  /tmp/test/b
d41d8cd98f00b204e9800998ecf8427e  /tmp/test/c
d41d8cd98f00b204e9800998ecf8427e  /tmp/test/a
d41d8cd98f00b204e9800998ecf8427e  /tmp/test/d
[root@lamp scripts]# echo "xixi" >/tmp/test/c      
[root@lamp scripts]# md5sum -c /tmp/test.md5 
/tmp/test/b: OK
/tmp/test/c: FAILED
/tmp/test/a: OK
/tmp/test/d: OK
md5sum: WARNING: 1 of 4 computed checksums did NOT match
[root@lamp scripts]# 

 

需求

  监测/var/wev/bbs目录下的文件不被篡改

 思路:

  1.   MD5_ori.md5文件作为原始的md5指纹库
  2.   MD5_new.md5文件作为每次检查所生成的指纹库
  3.   然后将MD5_ori.md和MD5_new.md5做diff检查,将检查的结果追加到md5.log文件中
  4.   将log中的内容邮件发送
  5.   每五分钟执行一次该脚本(定时任务)
#!/bin/sh

MD5_ori=/tmp/bbs_ori.md5                   
MD5_new=/tmp/bbs_new.md5                    
MD5_log=/tmp/md5.log

[ ! -e $MD5_ori ]&&{
echo "No MD5 original file!!!"
exit 2
}


[ ! -e $MD5_new ]&&{
touch $MD5_new
}


[ ! -e $MD5_log ]&&{
touch $MD5_log
}


find /var/web/bbs/ -maxdepth 1 -type f|xargs md5sum >>$MD5_new

diff $MD5_ori $MD5_new >>$MD5_log

n=`cat $MD5_log|wc -l`   //检查log文件是否为空

[ $n -eq 0 ]||cat $MD5_log|mail -s "file is changed!!!_$(date +%F)"  18348******@163.com 

>$MD5_new                 //清空文件,为下次检测做准备
>$MD5_log          //清空文件,为下次检测做准备

 

  

posted @ 2015-11-29 22:43  Nuwanda  阅读(928)  评论(0编辑  收藏  举报