您的位置:首页 > 运维架构 > Shell

shell学习--十九web站点串改监控

2017-12-10 00:10 197 查看
监控web站点目录(/var/html/www)下所有的文件是否被修改(文件内容被改了),

如果有就打印改动的文件名(发邮件),定时任务每3分钟执行一次(10分钟)。

思想:

1、思想

2、未经允许

3、文件被改了,会有特征。

    a、大小可能会变化

    b、修改时间(文件测试符ot,nt)

    c、文件内容会变化,md5sum指纹

    d、增减或者删掉了

问题:

1、代码发布方案:大公司或者规范的公司,不会时刻传代码。(每天下午18点以后)

2、脚本不严谨啊,工作先解决问题,然后在解决好问题。

3、多思考自己解决。

4、文件变化的信息库

md5sum

[root@node01 day13]# md5sum  /etc/hosts

54fb6627dbaa37721048e4549db3224d  /etc/hosts

[root@node01 day13]# echo "##" >>/etc/hosts

[root@node01 day13]# md5sum  /etc/hosts    

b555326712fda43b9e47d506d72d23b2  /etc/hosts

[root@node01 html]# touch index.html

[root@node01 html]# echo wolf>index.html

[root@node01 html]# cat index.html 

wolf

[root@node01 html]# find /var/www/html/ -type f|md5sum

a2d6eec9c0c4a30530dfa5753d43bfc2  -

[root@node01 html]# find /var/www/html/ -type f|xargs md5sum

d22f6718ff2408e991f99dde2b5898bf  /var/www/html/index.html

建立指纹库

[root@node01 html]# find /var/www/html/ -type f|xargs md5sum>/data/wolf/md5sum.db

[root@node01 html]# md5sum -c /data/wolf/md5sum.db 

/var/www/html/index.html: OK

[root@node01 html]# md5sum -c /data/wolf/md5sum.db |grep -i fail

[root@node01 html]# 

[root@node01 html]# echo laolang>>index.html 

[root@node01 html]# md5sum -c /data/wolf/md5sum.db |grep -i fail

md5sum: WARNING: 1 of 1 computed checksum did NOT match

/var/www/html/index.html: FAILED

[root@node01 data]# vi md5sum.sh 

#!/bin/sh

db=/data/wolf/md5sum.db

if [ `md5sum -c $db|grep FAILED|wc -l` -ne 0 ]

   then

      echo "`md5sum -c $db|grep FAILED`"

fi

[root@node01 data]# sh md5sum.sh 

md5sum: WARNING: 1 of 1 computed checksum did NOT match

md5sum: WARNING: 1 of 1 computed checksum did NOT match

/var/www/html/index.html: FAILED

新增或者删除问题

[root@node01 data]# find /var/www/html/ -type f>a.log

[root@node01 data]# find /var/www/html/ -type f>b.log

[root@node01 data]# diff a.log b.log 

1a2

> /var/www/html/123.sh

生成指纹库和生成原始文件统计

path=/var/www/html/

find $path -type f|xargs md5sum>/data/wolf/md5sum.db

find $path -type f>/data/wolf/check_site.log

全脚本(这里可以用while true或者用计划任务)

#!/bin/sh

path=/data/wolf

f=`md5sum -c $path/md5sum.db|grep FAILED|wc -l`

n=`cat $path/check_site.log`

[ ! -f "$n" ] && touch $path/check_site.log

while true

do

    f=`md5sum -c $path/md5sum.db|grep FAILED|wc -l`

    find /var/www/html/ -type f>$path/new_site.log

    log=/tmp/check.log

    [ ! -f $log ] && touch $log

    if [ $f -ne 0 ] || [ `cat $path/new_site.log|wc -l` -ne `$n|wc -l` ]

       then

       echo "`md5sum -c $path/md5sum.db|grep FAILED`">$log

       diff $path/check_site.log $path/new_site.log>>$log

       mail -s "site is cuangai $(date) 1098331428@qq.com"<$log

    fi

    sleep 3

done

去新增文件、修改、删除测试

查看log

[root@node01 data]# cat /tmp/check.log 

1c1

< /var/www/html/nannan.log

---

> /var/www/html/1.txt
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: