之前参加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

ctf比赛linux文件监控和恢复shell的更多相关文章

  1. Linux文件误删之后恢复方法

    前言 今天不小心把一个文件给误删了,因为不想花半天时间重新写,就查找了一下Linux下恢复文件的方法. 因为是刚删不久,文件实际的数据应该还在 首先查看系统分区 Linux:~# df Filesys ...

  2. Linux文件监控

    关键词:linux, 监控 假设要让server保持最佳性能,你应该将 Linux server的执行级别 runlevel 设置为 3 .就是控制台模式.当你须要图形化桌面的时候使用 startx ...

  3. Linux 文件监控之谁动了我的奶酪

    有时候配置文件会被莫名其妙的修改,但是找不到修改他的进程,从而无法抓住罪魁祸首,这时候就诞生了摄像头.呃呃,应该是audit 比如我要监控一个文件test.txt [root@hsun /]# aud ...

  4. linux文件远程传输客户端shell脚本与分布式客户机时间同步脚本

    #!/bin/bash # 将代码和脚本传送至worker节点 # 改变当前工作目录 cd ${AMAZONCRAWLER_HOME} #读取worker节点ip列表 i= while read li ...

  5. 针对Linux 文件完整性监控的实现

    针对Linux 文件完整性监控的实现 摘要 计算机和互联网是20世纪以来最伟大的发明之一,随着计算机技术的不断发展,人们的生活方式发生了巨大的变化.计算机和互联网的发展给人们的生产生活带来了极大的便利 ...

  6. Linux下日志文件监控系统Logwatch的使用记录

    Linux下日志文件监控系统Logwatch的使用记录 原文:http://www.cnblogs.com/kevingrace/p/6519504.html 在维护Linux服务器时,经常需要查看系 ...

  7. CTF线下awd攻防文件监控脚本

    CTF线下awd攻防赛中常用一个文件监控脚本来保护文件,但是就博主对于该脚本的审计分析 发现如下的问题: 1.记录文件的路径未修改导致log暴露原文件备份文件夹:drops_JWI96TY7ZKNMQ ...

  8. Linux 文件系统错误的修复方法 ddrescue替代dd的恢复软件 备用超级块

    Linux 文件系统错误的修复方法  ddrescue替代dd的恢复软件  备用超级块 最近处理的一件 linux 服务器断电导致文件系统启动后文件系统不可读写,数据不可用的案例,现总结下 Linux ...

  9. zabbix监控linux文件的一个目录大小

    监控linux文件的一个目录大小 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.       欢迎加入:高级运维工程师之路 598432640 我们知道,Linux自带的一些监控模板 ...

随机推荐

  1. C#控件的简单应用

    listview 创建columns: ImageList imgList = new ImageList(); imgList.ImageSize = , ); FaceListview.Small ...

  2. hash算法的应用

    一.单词模式匹配 描述:单词模式字符串为“一二二一”,目标字符串为"苹果 香蕉 香蕉 苹果"则匹配成功 a=[1,2,2,1,1,3] b=['x','y','y','x','x' ...

  3. js控制进度条数据

    <style><!-- #time{ width:500px; height: 20px; background: red; border-radius: 10px; } --> ...

  4. Xbim.GLTF源码解析(一):简介

    原创作者:flowell,转载请标明出处:https://www.cnblogs.com/flowell/p/10838972.html 简介 Xbim.GLTF是将IFC文件转换成GLTF文件的一个 ...

  5. Spring IoC的概念

    Spring IoC的基础知识 Spring 框架可以说是Java世界中最成功的框架,它的成功来自于理念,而不是技术,它最核心的理念是IoC(控制反转)和AOP(面向切面编程),其中IoC是Sprin ...

  6. Ubuntu 10.04——boa服务器的搭建

     声明:自从第一次发表博文不知不觉过去了好久了,非常抱歉没能把自己的东西分享出来,但是由于上家公司本月初裁员,所以致使学的新东西成了半成品,无奈又换了一家,目前已工作三周了,自己也很想写博文分享知识, ...

  7. 单(single):换根dp,表达式分析,高斯消元

    虽说这题看大家都改得好快啊,但是为什么我感觉这题挺难.(我好菜啊) 所以不管怎么说那群切掉这题的大佬是不会看这篇博客的所以我要开始自嗨了. 这题,明显是树dp啊.只不过出题人想看你发疯,询问二合一了而 ...

  8. scss新手使用指南

    还在用死的css写样式吗?那可太麻烦了,各种长串选择器不说,还有各种继承权重有时候还有可能不生效 我的小程序项目也结束了,是时候总结一下scss语法了,毕竟用起来更加方便而且还能精简一点代码,好处多多 ...

  9. P3097 [USACO13DEC]最优挤奶(线段树优化dp)

    盲猜dp系列... 题意:给定序列,选了i就不能选与i相邻的两个,求最大值,带修改 蒟蒻在考场上10min打完以为只有两种情况的错解...居然能骗一点分... 先讲下当时的思路吧. f[i][0/1] ...

  10. IntelliJ IDEA自动部署项目至远程服务器与传统部署项目至远程服务器的区别

    每次开发Java项目时,对于所有Java开发人员来说,最枯燥的不是修改代码,而是实时将自己的代码上传至远程服务器,进行测试或者部署,本人最初开发也是这样,通过使用Xshell 5,WinSCP等工具对 ...