在linux上SubVersion定期完整備份腳本 |
發(fā)布時(shí)間: 2012/8/11 11:11:52 |
說明:請(qǐng)根據(jù)自己需要調(diào)整.我測(cè)試在我的機(jī)器上跑非常正常.我的環(huán)境是Centos5。我的svn目錄是在/svn上.
另外,記的在你的/下面建如下的目錄 #mkdir-p/backup/svn/data/ #mkdir-p/backup/svn/daily/ 腳本功能:定期對(duì)一些項(xiàng)目進(jìn)行完整備份. project.lst文件格式如下: project1 project2 備份腳本如下: #!/bin/sh # # #subversion完整備份的腳本,調(diào)整好后使用crontab-e放到自動(dòng)執(zhí)行里面即可. # #備份日志文件 LogFile=/backup/svn/svnbak.log DATE=`date+%Y%m%d` #備份目錄 BakDir=/backup/svn/data #日常備份目錄,如果有 DailyDir=/backup/svn/daily #要備份的項(xiàng)目列表文件,只有項(xiàng)目名 ProjectLst=/backup/svn/project.lst #所有項(xiàng)目都保存在這個(gè)目錄下 SvnDir=/svn #svnadmin程序的路徑 SVNADMIN=/usr/bin/svnadmin echo"">>$LogFile echo"">>$LogFile echo"-------------------------------------------">>$LogFile echo$(date+"%y-%m-%d%H:%M:%S")>>$LogFile echo"--------------------------">>$LogFile cd$BakDir #讀取項(xiàng)目列表 PROJECTLIST=`cat$ProjectLst`
do projectdata=$SvnDir/$project destdir=$BakDir/$project dumpfile=$DATE.$project.tgz
then echo"backupfilehaveexist!">>$LogFile else $SVNADMINhotcopy$projectdata$destdir--clean-logs tarczvf$dumpfile$destdir>/dev/null rm-fr$project echo"backup$projectdoneinto$dumpfile">>$LogFile fi ##deleteoldtgz此處根據(jù)crontab的時(shí)間調(diào)整,例如一周一次備份,此處保留了5份備份,以前的刪除 oldfile="$BakDir/"$(date+%y%m%d--date='28daysago').$project.tgz
then rm-f$oldfile>>$LogFile2>&1 echo"[$oldfile]DeleteOldFileSuccess!">>$LogFile else echo"[$oldfile]NoOldBackupFile!">>$LogFile fi done
cd$DailyDir rm-f* 本文出自:億恩科技【www.allwellnessguide.com】 服務(wù)器租用/服務(wù)器托管中國(guó)五強(qiáng)!虛擬主機(jī)域名注冊(cè)頂級(jí)提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM] |