svn備份腳本

#!/bin/bash #svn complete bakup sprit Logfile=/svndata/svnfullbak/svnbak.log  #定義備份腳本日誌文件變量 DATE=`date +%Y%m%d` #The dir of backup date Bakdir=/svndata/svnfullbak              #定義備份數據存放路徑 Projectlist=/svndata/project.lst        #定義項目名列表變量(project.lst 是本身創建的文件,裏面存放項目名,注意各項目名之間有空格隔開) Svndir=/svndata/svn                     #定義要備份數據所在位置變量 SVNADMIN=/usr/local/svn/bin/svnadmin    #定義拷貝文件所用命令   echo "" >>$Logfile   echo "" >>$Logfile   echo "-----------------------------------------------------------------------">>$Logfile   echo $(date +"%Y-%m-%d:%H:%M:%S")>>$Logfile   echo "-----------------------------------------------------------------------">> $Logfile cd $Backdir #Read the project's list PROJECTLIST=`cat $Projectlist`          #讀取項目名列表 for project in $PROJECTLIST             #逐個檢查在project.lst中的項目 do   projectdata=$Svndir/$project          #爲各個項目創建變量   destdir=$Bakdir/$project              #備份數據存放的路徑及名稱   $SVNADMIN hotcopy $projectdata $destdir.$DATE    #拷貝數據 if [ $? -eq 0 ] then   echo "[ $project.$DATE ]Hotcopy back success" >>$Logfile #[ $project.$DATE ]此爲執行變量之意   else   echo "[$project.$DATE]Hotcopy back fail" fi Oldtime=`date +%Y%m%d --date="10 days ago"` #這個變量定義了10天前備份的數據,用於設定保留距如今多少天的數據 Oldfile=$destdir.$Oldtime if [ -d $Oldfile ] then   rm -rf $Oldfile>>$Logfile   echo "[$Oldfile] Delete old file success!">>$Logfile else   echo "[$Oldfile] No old Backup file!">>$Logfile fi done #這是個全備腳本,沒有也沒有壓縮,對於咱們公司的數據我作過一個對比,公司有80個項目,23個G壓縮後21個G,比例不是很高,若是 壓縮磁盤會多幾步工做量,看下過程先備份數據,再各個項目壓縮,刪除備份項目,多了壓縮和刪除,壓縮過程挺漫長,不介意使用,我 是天天全備,出現故障好恢復
相關文章
相關標籤/搜索