在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.enkj.com】 |