之前参加ctf比赛时候临时写的,有很多不足,不过可以用,就贴出来分享给大家,希望对大家有帮助。

脚本一:记录当前目录情况

#!/bin/bash
function getdir(){
    for element in `ls $1`
    do  
        dirfile=$1"/"$element
        if [ -d $dirfile ]
        then
            getdir $dirfile
        else
            #将目录结构和大小存为一个临时文件
            echo `du -ab $dirfile` >> ./t.txt
            #echo $dirfile >> ./dir.txt
        fi  
    done
}

# 监控的目录
DIR="/root/yxy"
getdir $DIR

function getdir1(){
    for element in `ls $1`
    do  
        dir_or_file=$1"/"$element
        if [ -d $dirfile ]
        then
            getdir1 $dirfile
        else
            #将目录结构和大小存为一个临时文件
            echo `du -ab $dirfile` > ./t1.txt
            #echo $dirfile >> ./dir.txt
        fi  
    done
}

DIR="/root/yxy"
getdir1 $DIR
echo `diff ./t.txt ./t1.txt` >> diff.txt
rm ./t1.txt

脚本二:对比脚本一的记录,恢复变化目录或文件
#!bin/bash
function backup(){
#发生变化的文件,在备份目录下的完整路径
backup_dir="/backup/"`tail -n1 ./diff.txt | awk '{print $4}' | cut -d / -f 3-`
    #想要恢复的目录,将文件恢复到该目录下
    backupfile=`cat ./diff.txt | awk '{print $4}' | cut -d / -f -3`
     for element in `ls $1`
     do  
         dirfile=$1"/"$element
         if [ -d $dirfile ]
         then
             backup $dirfile
         elif [[ -f $backup_dir && $backup_dir != $dirfile ]]
         then
             cp $backup_dir $backupfile
         else
             #要删除的文件
             dir=$DIR`tail -n1 diff.txt | awk -F"/" '{print "/"$NF}'`
             #这里不能用-r,diff.txt没有不同时,加-r会删除整个目录
             rm  -f $dir
         fi
     done
}

#监控目录
DIR="/root/yxy"
backup $DIR

最新文章

  1. python staticmethod and classmethod方法
  2. Access 2003 中自定义菜单栏
  3. jq对象转为dom对象:$(".div1")[0] dom对象转为jq对象:$(dom对象)
  4. iOS - Project 项目
  5. 在路由器 RT-AC68U 使用自定义 DDNS 用 3322.org 动态域名的方法
  6. 将服务器返回的URL或者网址截取出来特定的字符,然后将字符返回,一般根据返回的字符判断用户是否登录等即时状态
  7. C#图像处理(4):图像的剪裁
  8. ASP中文件上传组件ASPUpload介绍和使用方法
  9. 第 9 章 MySQL数据库Schema设计的性能优化
  10. kmp next数组的理解(挺好的一篇文章 ,原来kmp最初的next是这样的啊,很好理解)
  11. Windows核心编程&内核对象
  12. HttpUtil 【判断网络连接的封装类】
  13. JavaFX-Application
  14. Gitlab之版本回滚
  15. memcache,redis对比
  16. Java配置分离之Spring远程配置
  17. git工具的使用
  18. JavaEE笔记(九)
  19. oracle创建定时器详解|interval属性
  20. vs添加静态链接库+添加动态链接库+添加头文件目录

热门文章

  1. httprunner-2-linux下搭建hrun(下)
  2. Linux下安装db2V9.7
  3. vue+uwsgi+nginx部署luffty项目
  4. IL2CPP深入详解-总览
  5. 说说 Python3 中的数字处理
  6. [考试反思]1030csp-s模拟测试94:未知
  7. 文字转换为svg动画
  8. NOIP 模拟29 B 侥幸
  9. 为什么 HTTPS 比 HTTP 安全
  10. 必知必会的JavaJDK工具