zoukankan      html  css  js  c++  java
  • 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          //清空文件,为下次检测做准备

      

  • 相关阅读:
    weiphp 微调研数据管理控制器
    微调研设置问题控制器
    weiphp调研部分代码
    weiphp 投票插件的主控制器部分代码3
    php Stream Contexts 小记
    通过 Composer Github Packagist制作发布共享PHP包
    SFTP远程文件上传
    百度推广 SEM闪投系统
    Illegal mix of collations (utf8_general_ci,IMPLICIT) and (gbk_chinese_ci,COERCIBLE) for operation '='
    Swoole 初识
  • 原文地址:https://www.cnblogs.com/along1226/p/5005846.html
Copyright © 2011-2022 走看看