#日期的三种格式 例如: 20130104 2013-01-04 130104这三种格式都可以使用date命令-d选项完成日期的转化,该脚本就是处理以这三种日期为结尾的log日志的自动分类压缩备份,处理的目录在$work_dir中
date1=$(date +%Y-%m-%d)
date2=$(date +%Y%m%d)
date3=$(date +%y%m%d)
work_dir='/home/project/'
#该步骤其实不需要,但仍保留
cd $work_dir
base_path='/home/project/logArchive/'
filename=$(find $work_dir -type f -name "*.log.*" ! -name "*.log.*bz2"\
! -name "*.log.*gz" ! -name "*$date1*" ! -name "*$date2*"\
! -name "*$date3*" ! -path "*$base_path*" | sort)
for log_name in $filename
do
log_date=${log_name##*.}
log_path="${log_name%/*}/"
log_date_path=$(date -d $log_date +/%Y/%m/%d/)
log_back_path=$base_path$log_date_path$log_path
[ -d $log_back_path ] || mkdir -p $log_back_path
mv $log_name $log_back_path
done
find $base_path -type f ! -name "*bz2" -exec bzip2 -9 {} \;