#!/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}