zoukankan      html  css  js  c++  java
  • ctf比赛linux文件监控和恢复shell

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


  • 相关阅读:
    java提高篇(四)-----抽象类与接口
    hdu1004----用java链表实现
    jkfladsdjfkldsa
    Handler_1
    Handler实现线程间的通信2
    Handler实现线程间的通信1
    Handler基本运行机制
    Android线程
    Activity声明周期2
    Activity声明周期1
  • 原文地址:https://www.cnblogs.com/Downtime/p/7586914.html
Copyright © 2011-2022 走看看