清华大佬耗费三个月吐血整理的几百G的资源,免费分享!....>>>
############################################################################### # # Author: # Joey Y Q Mei # # Date: # 10 Dec 2012 # # Description: # zip folder # # Usage: # Parameter 1: source folder path # Parameter 2: job id # # Sample: # BackupDelete.sh /hp/xxx/aaa jobId # ############################################################################### if [ $# -lt 2 ] then echo "Error: Please input the arguement:" echo "Example: zip_folder.sh /hp/xxx/aaa jobId" exit 1 fi source_folder_path=$1 job_id=$2 timeStamp=`date +%Y%m%d` source_folder_name=${source_folder_path##*/} cd_folder_path=${source_folder_path%/*} archive_folder=$cd_folder_path/Archive keep_num=10 if [ ! -d "$source_folder_path" ] then echo ">>>>> Error: The folder <$source_folder_path> does not exist." exit 1 fi if [ ! -d "$archive_folder" ] then echo ">>>>> Error: The folder <$archive_folder> does not exist." exit 1 fi zip_folder_path=$cd_folder_path/Archive/$timeStamp if [ ! -d "$zip_folder_path" ] then echo ">>>>> Add: dir <$zip_folder_path> " mkdir $zip_folder_path fi cd $cd_folder_path zip_file=$source_folder_name"_"$job_id.zip zip -r $zip_folder_path/$zip_file $source_folder_name #remove files function function_rmfiles(){ for file in `ls $1` do rm -r $1/$file echo ">>>>> Info: <$1/$file> has been removed." done } #clear source_folder_path files if (( $? == "0")) then echo ">>>>> Success: <$zip_folder_path/$zip_file> has been created." for folder in `ls $source_folder_path` do if [ $folder = "Compare" ] then for subfolder in `ls $source_folder_path/$folder` do function_rmfiles $source_folder_path/$folder/$subfolder done else function_rmfiles $source_folder_path/$folder fi done else echo ">>>>> Error: Create <$zip_folder_path/$source_folder_name.zip> failed." exit 1 fi #clear old backup folder echo ">>>>> Info: Cleaning old folders." signal=0 hasOld=0 while((signal!=1)) do backup_folders=`ls $archive_folder` arr_backup_folders=($backup_folders) count=${#arr_backup_folders[@]} if (( "$count" > "$keep_num")) then old_file=$archive_folder/${arr_backup_folders[0]} rm -rf $old_file hasOld=1 echo ">>>>> Info: <$old_file> has been removed." else signal=1 fi done if(( "$hasOld" == "1")) then echo ">>>>> Success: $archive_folder Old folders has been removed." else echo ">>>>> Success: $archive_folder no old folders." fi