SVN完全备份svnadmin hotcopy

利用svnadmin hotcopy可以实现完全备份,但不能进行增量备份。svnadmin hotcopy是将整个库都“热”拷贝一份出来,包括库的钩子脚本、配置文件等;任何时候运行这个脚本都得到一个版本库的安全拷贝,不管是否有其他进程正在使用版本库。

优点是:备份过程较快,灾难恢复也很快;如果备份机上已经搭建了svn服务,甚至不需要恢复,只需要进行简单配置即可切换到备份库上工作。

缺点是:比较耗费硬盘,需要有较大的硬盘支持。

备份命令:

svnadmin hotcopy /path/to/repository /path/to/backup

1)定义备份策略
    备份频度:每天进行一次全量备份。
    备份地点:备份目录以当前时间命名,备份路径到/data/svnbackup/。
    备份保留时期:保留7天,超过7天的进行删除。
    备份时间:每晚11点59分开始。
    备份检查:备份完毕后自动检查备份是否正确、记录日志。
    2)建立备份脚本

在/data/shells目录建立备份脚本svnbak.sh,假如svn仓库路径为/data/svn,要备份到/data/svnbackup/:

#!/bin/bash
#
# Filename:    svnbak.sh
# Revision:    1.0
# Date:        2014/11/07
# Author:      Qicheng
# Email:
# Website:
# Description: SVN完全备份
# Notes:       将脚本加入crontab中,每天定时执行
#
MAXDAYS=7                       # 备份保留最大天数
TIME=`date +‘%Y%m%d%H%M%S‘`
SVNPATH=/data/svn               # 定义仓库repos路径
BAKDIR=/data/svnbackup          # 定义备份主目录
BAKSUBDIR=${BAKDIR}/${TIME}     # 定义全备路径
BAKLOG=${BAKDIR}/${TIME}.log    # 定义备份日志
[ ! -f "${BAKSUBDIR}" ] && mkdir -p ${BAKSUBDIR}
exec 1>${BAKLOG}
exec 2>&1

set -x
# 删除历史备份
find ${BAKDIR} -maxdepth 1 -type f -mtime +$(expr ${MAXDAYS} - 1) -exec echo "Delete {}" \; -exec rm "{}" \;
# 全备份
svnadmin hotcopy ${SVNPATH} ${BAKSUBDIR}
# 如果能打印版本号说明备份正确
svnlook youngest ${BAKSUBDIR}
[ $? -ne 0 ] && exit 1

cd ${BAKDIR}
# 压缩备份
tar cvzf ${TIME}.tar.gz ${TIME}/
rm -rf ${BAKSUBDIR}
# 可以通过rsync把备份文件同步到远程备份机上,此处省略。

测试一下:

3)设置定时crontab

每天23点59分开始执行脚本:

59 23 * * * /bin/bash /data/shells/svnbak.sh

参考资料:

http://www.cnblogs.com/itech/archive/2011/10/11/2206988.html

时间: 2024-11-13 08:01:01

SVN完全备份svnadmin hotcopy的相关文章

svn使用dump和hotcopy进行脚本备份

[[email protected] shell]# cat repolist dev-arcdev-bmdev-crmdev-paydev-pmdev-portaldev-riskhrproductqarep-ops [[email protected] shell]# cat svnbackup.sh #!/bin/bashrm -rf /yc/backup/dump/* &> /dev/nullrm -rf /yc/backup/hotcopy/* &> /dev/nul

SVN自动备份脚本

#!/bin/sh##Subversion的安装目录及执行文件SVN_HOME=/usr/local/subversion/binSVN_ADMIN=$SVN_HOME/svnadminSVN_LOOK=$SVN_HOME/svnlook##配置库根目录SVN_REPOROOT=/zsvn/svnroot##备份文件存放路径date=$(date '+%Y%m%d')BAK_STORE=/zsvn/bakdump/$dateif [ ! -d "$BAK_STORE" ];thenmk

svn官方备份hot-backup.py强烈推荐

centos 6.7默认安装的python是2.6.6,大家可以先查看一下自己操作系统的python版本,python -v: hot-backup.py是基于python2写的,python3的语法有些地方不一样,所以在python3上不一定能运行,我没有测试,有空的同学可以测试一下,目前linux os默认安装的python版本都是2 # /opt/subversion-1.9.3/tools/backup/hot-backup.py --helpUSAGE: hot-backup.py [

公司内部搭建svn文件服务器备份策略

svn备份策略 1,全备份(测试阶段每天执行) svn文件夹备份和svn dump文件备份 第一步: 在192.168.8.11服务器上 先执行C:\svn备份脚本\svnw.bat脚本.内容如下: svnadmin hotcopy c:\Repositories\svn\project c:/svnback/project1-%date:~0,4%-%date:~5,2%-%date:~8,2% 备注:这行代码的意思是用svnadmin把版本库里面所有的文件全部备份到这个路径下,C:/svnb

SVN完全备份,增量备份,库同步

svn备份一般采用三种方式:1)svnadmin dump 2)svnadmin hotcopy 3)svnsync. 优缺点分析: ============== 第一种svnadmin hotcopy只能进行全量拷贝,不能进行增量备份: 优点:备份过程较快,灾难恢复也很快:如果备份机上已经搭建了svn服务,甚至不需要恢复,只需要进行简单配置即可切换到备份库上工作. 缺点:比较耗费硬盘,需要有较大的硬盘支持. 第二种svnadmin dump是官方推荐的备份方式, 优点:比较灵活,可以全量备份也

linux下SVN定时备份并删除历史备份

利用svnadmin hotcopy可以实现完全备份,但不能进行增量备份.svnadmin hotcopy是将整个库都"热"拷贝一份出来,包括库的钩子脚本.配置文件等:任何时候运行这个脚本都得到一个版本库的安全拷贝,不管是否有其他进程正在使用版本库. 优点是:备份过程较快,灾难恢复也很快:如果备份机上已经搭建了svn服务,甚至不需要恢复,只需要进行简单配置即可切换到备份库上工作. 缺点是:比较耗费硬盘,需要有较大的硬盘支持.在/data/svnbackup目录建立备份脚本svnbak.

SVN主从备份

SVN主从备份 两套环境:192.168.67.63(主SVN) 192.168.67.60(从SVN) 1.主环境上已经装好SVN并且存在数据仓库/home/svndata在从环境上,新建一/home/svndata_bak仓库: [[email protected] home]# svnadmin create /home/svndata_bak [[email protected] home]# ll 总用量 0 drwx------. 3 bhd bhd 78 4月 11 2018 bh

centos7搭建SVN+Apache+IF.svnadmin实现web管理SVN

阅读目录 1. 介绍 2. 软件准备 3. 建立SVN Server仓库 4. 配置安装PHP&IF.SVNadmin 5. 启动服务 1.介绍 公司最近想把Windows server平台的SVN迁移到Linux平台;这边经过测试成功,所以写个随笔记录一下 今天写的是CentOS7上搭建基于Apache,http访问的SVN Server;和IF.svnadmin实现web后台可视化管理SVN 2. 软件准备 安装相关软件包 安装过程如下: 1.安装apache [[email protect

SVN自动化备份、恢复脚本(下)

#!/bin/bash #本脚本是用来计算本地磁盘空间大小,并且与svn备份文件大小进行比较判断,当满足什么条件时,做出相应的响应. #第一步是检测svn服务器,svn数据文件的总量大小和本机磁盘剩余空间的大小. ##连接10.68.3.152服务器,查看最新svn文件大小,获取查看的值. datef() {         date "+%Y/%m/%d %H:%M" } password=xxxx2015 svnreport=/data/log/report_`date "