svn增量备份恢复脚本

好久更新技术类了,又一懒人专做。
目的就是方便我自己的做svn增量备份后的还原,谁叫我没那么大空间的机器用来做全备呢。哈哈如果要使用下面的脚本的话,你或者是模拟一下能够被下面脚本使用的配置。
本人写的svn增量备份脚本:svn服务增量备份脚本,Incremental backup script
脚本中所使用的svn.important及svn备份数据文件信息,如下图:
svn备份脚本  来源kinggoo.com 备份文件信息  来源kinggoo.com
————————————————-
不足:
因为是给自己提供方便的,所以没有对任何东西进行处理!如果有使用的,凑合用啊!
下载此脚本 >点我<

#!/bin/bash
#
# http://kinggoo.com
#
# 之前使用我的备份脚本执行的,机器上已经搭建svn服务,创建一个空的仓库
# SVN_PATH是备份文件存放目录,如 /svn/,下面包含:201111,201112,log这种目录
# 新创建的库最好要跟以前的相同,不然需要自己修改下脚本
# 要用我的增量备份 < <文章: svn服务增量备份脚本,Incremental backup script >>
##
##库目录
SVN_PATH=/opt/svnroot/
##svn代码库备份目录
SVN_REVERTFILE=/opt/
##保留备份信息的日志
SVN_IMPORTANT=${SVN_REVERTFILE}log/svn.important

###以上要改成你自己的环境信息###
declare -a YM REPOSITORY
R_ARR=0
YM_ARR=0
YM=( 年份月份 年份月份+1 以此类推... )
# 库的过滤
REPOSITORY=( REPOSITORY1 REPOSITORY2 )
I=`cat ${SVN_IMPORTANT} |wc -l`
while [ "${R_ARR}" -lt "${#REPOSITORY[@]}" ]
do
#年月的过滤
while [ "${YM_ARR}" -lt "${#YM[@]}" ]
do
  i=1
  while [ "$i" -le "$I" ]
  do
   #YEAR=`grep -v Vancl < ${SVN_IMPORTANT} |awk -F':' 'NR==1{ print $1 }'`
   KU=`grep ${REPOSITORY[$R_ARR]} <  ${SVN_IMPORTANT}  |awk -F ':' 'NR=='$i'{ print $1 }'`
   YEAR=`grep ${REPOSITORY[$R_ARR]} <  ${SVN_IMPORTANT}  |awk -F ':' 'NR=='$i'{ print $2 }'`
   AGO=`grep ${REPOSITORY[$R_ARR]} <  ${SVN_IMPORTANT}  |awk -F ':' 'NR=='$i'{ print $3 }'`
   AFTER=`grep ${REPOSITORY[$R_ARR]} <  ${SVN_IMPORTANT}  |awk -F ':' 'NR=='$i'{ print $4 }'`
   #按月份
   svnadmin load ${SVN_PATH}${REPOSITORY[$R_ARR]} < ${SVN_REVERTFILE}${YM[$YM_ARR]}/${REPOSITORY[$R_ARR]}/${REPOSITORY[$R_ARR]}.${AGO}_${AFTER}.dump*
   ((i=$i+1))
done
((YM_ARR=$YM_ARR+1))

done
((R_ARR=$R_ARR+1))
YM_ARR=0
done
- THE END -
版权声明:
转载原创文章请注明,文章出处:http://kinggoo.com
原文地址:http://kinggoo.com/svn-backupforrecovery.htm
发表评论?

5 条评论。

  1. 我所在公司也用svn ,不过没博主那么高端。
    不懂啥增量备份,我们都直接全部备份。。

    • 时间长了你就知道了,你应该用的是 hotcopy 吧,如果你有足够的备份空间还可以用。另外一个是svnsync 不过都是有优缺点的
      dump就是恢复的时候比较耗时

  2. 呵呵,谢谢!一起加油

发表评论