#日期的三種格式 例如: 20130104 2013-01-04 130104這三種格式均可以使用date命令-d選項完成日期的轉化,該腳本就是處理以這三種日期爲結尾的log日誌的自動分類壓縮備份,處理的目錄在$work_dir中 shell
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 {} \;