shell备份脚本

 

 

#!/bin/bash
#不存在的变量终止脚本执行
set -o nounset   
#执行出错终止脚本执行
set -o errexit
#递归列出文件的绝对路径并执行压缩

delDir=`date -d "7 days ago" +%Y/%m/%d`
zipDir=`date -d "1 days ago" +%Y/%m/%d`

function getAndZipFile() {
    for file in `ls $1`
    do
        if [ -d $1"/"$file ]
        then
            getAndZipFile $1"/"$file
        else
            zipFile $1"/"$file
        fi
    done
}

function zipFile() {
    #获取文件的路径,去除掉最后的文件名
    dirName=`echo $1|awk -F "/" 'OFS="/" {$NF=" ";print}'`
    dDir=`echo $1|awk -F "/" '{print $6"/"$7"/"$8}'`
    delDirName=`ls $1|cut -d "/" -f 1-8`
    #获取文件名称
    fileName=`ls $1|awk -F "/" '{print $NF}'`
    if [ "${zipDir}" == "${dDir}" ];then
        cd ${dirName}
        if [ "${fileName##*.}" != "gz" ]; then
             gzip ${fileName}
        fi
    elif [ "${delDir}" == "${dDir}" ];then
        rm -rf ${delDirName}
    fi
}

filePath=/home/web/crawler
getAndZipFile ${filePath}

  

posted @ 2019-09-26 16:04  MR__Wang  阅读(248)  评论(0编辑  收藏  举报