前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >shell脚本 检查文件是否被修改

shell脚本 检查文件是否被修改

原创
作者头像
陈不成i
修改2021-06-23 17:30:00
2.2K0
修改2021-06-23 17:30:00
举报
文章被收录于专栏:ops技术分享

1.进行检测目录的添加,可以多个目录

2.添加定时任务,可以一分钟一次,有改动会输出改动情况

  1. #!/bin/bash
  2. #2020-3-14
  3. #监测文件是否被修改脚本
  4. #监测目录
  5. dir_file=(/etc)
  6. file_list=/usr/local/file_list.txt
  7. error_file=/usr/local/error_list.txt
  8. display_path() {
  9. for i in `ls`
  10. do
  11. if [[ -d $i ]];then
  12.             cd $i
  13.             display_path
  14.             cd ..
  15. else
  16.             md5sum ${PWD}/${i} >> ${file_list}
  17.         fi
  18.     done
  19. }
  20. file_check() {
  21. for i in `echo ${dir_file[*]}`
  22. do
  23.         cd ${i}
  24.         display_path
  25.     done
  26. }
  27. check() {
  28. while read line
  29. do
  30.         a=`echo $line |awk '{print $1}'`
  31.         b=`echo $line |awk '{print $2}'`
  32.         c=`md5sum $b | awk '{print $1}'`
  33. if [[ $a != $c ]];then
  34.             echo "$b" >> $error_file
  35.         fi
  36.     done < ${file_list}
  37. }
  38. if [[ $1 == "init" ]];then
  39.     rm -rf ${file_list}
  40.     file_check
  41.     number=`wc -l ${file_list} |awk '{print $1}'`
  42.     echo "统计完成,总共${number}个文件"
  43. elif [[ $1 == "check" ]];then
  44. if [[ -f ${file_list} ]];then
  45.         rm -rf $error_file
  46.         check
  47. if [[ -f $error_file ]];then  
  48.             echo "修改过的文档如下:"
  49.             cat $error_file
  50. else
  51.             echo "没有修改过的文件"
  52.         fi
  53. else
  54.         echo "${file_list} not foud, please use init"
  55.         exit
  56.     fi
  57. else
  58.     echo "init | check"
  59. fi

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档