在linux上SubVersion定期完整備份腳本 |
發布時間: 2012/8/11 11:11:52 |
說明:請根據自己需要調整.我測試在我的機器上跑非常正常.我的環境是Centos5。我的svn目錄是在/svn上.
另外,記的在你的/下面建如下的目錄 #mkdir-p/backup/svn/data/ #mkdir-p/backup/svn/daily/ 腳本功能:定期對一些項目進行完整備份. project.lst文件格式如下: project1 project2 備份腳本如下: #!/bin/sh # # #subversion完整備份的腳本,調整好后使用crontab-e放到自動執行里面即可. # #備份日志文件 LogFile=/backup/svn/svnbak.log DATE=`date+%Y%m%d` #備份目錄 BakDir=/backup/svn/data #日常備份目錄,如果有 DailyDir=/backup/svn/daily #要備份的項目列表文件,只有項目名 ProjectLst=/backup/svn/project.lst #所有項目都保存在這個目錄下 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 #讀取項目列表 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此處根據crontab的時間調整,例如一周一次備份,此處保留了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.artduck.net】 |