shell 监测文件夹文件内容是否改变

#! /bin/bash
#定义验证文件目录
FileDir='/home/test'
#定义需要监测的文件夹
CheckDir=(
/home/test2
/home/test3
)
#定义生成所需验证的文件样本日志的函数
function OldFile(){
        for i in ${CheckDir[@]}
        do
                echo $i
                /bin/find ${i} -type f -print0 | xargs -0 md5sum >> ${FileDir}/old.log
        done
}
function NewFile(){

        for i in ${CheckDir[@]}
        do
                echo ${i}
                /bin/find ${i} -type f -print0 | xargs -0 md5sum >> ${FileDir}/new.log
        done
}

if [ ! -d ${FileDir} ]
then
        mkdir ${FileDir} -p
fi

if [ ! -e ${FileDir}/old.log ]
then
        OldFile
fi

#生成新的日志文件
NewFile
#新的日志文件与旧的日志文件进行对比
/usr/bin/diff ${FileDir}/new.log ${FileDir}/old.log > ${FileDir}/diff.log
Status=$?

if [ $Status -ne 0 ]
then
        echo "文件变化"
        cat ${FileDir}/diff.log

fi

#清除新旧日志文件,备份比较结果
/bin/cp -f ${FileDir}/diff.log ${FileDir}/diff$(date +%F__%T).log
cat /dev/null > ${FileDir}/old.log
cat /dev/null > ${FileDir}/new.log
#生成新的旧日志文件
OldFile

你可能感兴趣的:(Linux)