bash 之备份文件

#!/usr/bin/bash  


#备份的目的目录  

BACDIR="/home/wxr/backup" 

  

#备份的子目录每天备份在一个子目录下 

SUBDIR=backup-$(date +%m%d%y)  

   

#备份的源目录 

DIRS[0]="/home/wxr/workspace" 

DIRS[1]="/home/wxr/school" 

DIRS[2]="/home/wxr/themes" 

DIRS[3]="/home/wxr/scripts" 

DIRS[4]="/home/wxr/Desktop" 

   
  
  

#备份的数量
NUMDIRS=${#DIRS[*]}  


#进入备份目录

if [ ! -d "$BACDIR" ];   

then  

    mkdir "$BACDIR"  

fi 
 

cd "$BACDIR" 

   

#进入备份子目录如果子目录存在则另加子目录 有时候更改系统时间

if [ -d "$SUBDIR" ];  

then 

    I=0  

    while [ -d "$SUBDIR""_"$I ]  

    do 

    let I=$I+1  

    done 


    SUBDIR+="_"$I  

fi 

mkdir "$SUBDIR" 


#备份源目录

I=0     


while [ $I -lt $NUMDIRS ]  

do 


    if [ -d "${DIRS[$I]}" ];  

    then 
    
    
    #提取本分源文件夹名称
    
    MAGIC=".190427150621502" 

    echo "${DIRS[$I]}" > $MAGIC  

    NAME="backup"$(sed -e 's/\//-/g' $MAGIC )  

    rm $MAGIC  

   
    #压缩备份

    tar cjf "$BACDIR/$SUBDIR/$NAME".tar.bz2 "${DIRS[$I]}" 

    echo "Backed up ($[$I+1]/$NUMDIRS) directories." 
  
    let I=$I+1  

done 



echo "Backups complete, have a nice day!" 

 

posted @ 2013-08-19 10:02  皁仩腄覺  阅读(328)  评论(0编辑  收藏  举报