Chinaunix首页 | 论坛 | 博客
  • 博客访问: 226716
  • 博文数量: 32
  • 博客积分: 215
  • 博客等级: 入伍新兵
  • 技术积分: 936
  • 用 户 组: 普通用户
  • 注册时间: 2011-02-25 11:21
个人简介

一个靠社会发展推动我不懈努力的人!

文章分类

全部博文(32)

文章存档

2017年(3)

2016年(4)

2015年(8)

2013年(10)

2012年(7)

分类: 敏捷开发

2013-05-31 09:29:47

我记得这脚本应该是09年写的了,今天正好有个类似的需求,就拿出来分享一下。

一、说一下脚本功能:
1、针对某个目录进行监控 一旦有文件或其目录下的子目录有被 创建、删除、更改、重命名的操作,
     提示出来列出来具体操作了哪个文件或者哪个目录,可以做到发邮件。

2、可以排除监控目录下的某几个目录的监控(例如logs目录)

二、说一下用到的技术:
find md5sum diff stat(last_modyfi) 

三、下面是脚本内容: (可能环境不同,需要稍加修改。有问题给我留言!)

  1. #!/bin/bash
  2. tmppatha=/tmp/pathtmpa
  3. tmppathb=/tmp/pathtmpb
  4. if [ "$#" -ne "1" ]
  5.       then
  6.     echo "useage:`basename $0` [path]"
  7.     exit 1
  8. else
  9.     cd $1 &> /dev/null ||{    
  10. echo "option [path] is not a real path ! "
  11.     exit 1
  12.     }
  13. if [ -e $tmppatha ]
  14.       then
  15.     if [ -s $tmppatha ]
  16.     then
  17.     for i in `find . -type f `
  18.     do
  19.         md5sum $i >> $tmppathb
  20.     done
  21.         
  22.     diff $tmppathb $tmppatha > /tmp/pathfilec
  23.     if [ -s /tmp/pathfilec ]
  24.     then
  25.         echo "[Wroning:] $1 has been modify! : `date +%Y-%m-%d_%H:%M`"    
  26.         echo "modify file list :"
  27.      for i in `cat /tmp/pathfilec | grep '^<'|awk '{print $3}'`
  28.      do
  29.          echo -n FILE: $i
  30.          echo -n " "    
  31.          echo -n MODIFY_TIME: `stat $i|grep 'Modify'|awk '{printf("%s %sn",$2,$3)}'`
  32.          echo
  33.      done
  34.             
  35.         rm -rf $tmppathb
  36.     else
  37.         rm -rf $tmppathb
  38.     fi
  39.         rm -rf /tmp/pathfilec &> /dev/null
  40.     fi
  41. else
  42.     echo "pathtmp init"
  43.     for i in `find . -type f `
  44.     do
  45.         md5sum $i >> $tmppatha
  46.     done
  47.     echo "pathtmp init ok!~"
  48.     echo "run twice to start cheak!"
  49. fi
  50. fi


阅读(3268) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~