http://bbs.iusesvn.com/viewthread.php?tid=1179&highlight=%E5%A4%87%E4%BB%BD
SVN备份脚本完整资料
在先前的备份脚本帖子中http://www.iusesvn.com/bbs/thread-623-1-1.html,我们讨论了如何使用脚本自动备份,可能由于没有完整的归档整理,容易造成一些误解,这里给出我目前在用的备份脚本,便于大家参考。
脚本总共设计了4个文件,如下:
【1】调度脚本 svndump.bat,可以用windows的计划任务设定自动备份
引用:
@echo off
@echo ================================================
@echo 说明:启动备份时,需要配置两个环境变量
@echo 1、SVN_HOME 指定svn的安装目录
@echo 2、RAR_CMD 指定RAR命令行压缩工具所在目录
@echo 3、SVN_REPOROOT 指定项目库的根目录(多库模式)
@echo 另外,如果需要异地备份,可以指定为网络映射Z盘
@echo ================================================
rem set logfile=svndump.log
set SVN_HOME=C:\Progra~1\Subversion\bin
set SVN_ADMIN="%SVN_HOME%\svnadmin.exe" (一定要记得加上"")
set SVN_LOOK="%SVN_HOME%\svnlook.exe" (一定要记得加上"")
set SVN_REPOROOT=e:\svn\repository
set RAR_CMD="C:\Progra~1\WinRAR\Rar.exe"
rem if not exist z:\nul net use z: \\192.168.2.226\g$\svndump
rem 读取项目库列表文件,并忽略其中;开头的行
FOR /f "eol=;" %%C IN (projectlist.conf) DO @call dump.bat %%C
【2】备份脚本 dump.bat,由svndump.bat调度,有入口参数
引用:
@ECHO OFF
rem 调用格式:dump 项目库名
if "%1"=="" goto no_args
set PROJECT=%1
if not exist %PROJECT% mkdir %PROJECT%
cd %PROJECT%
SET LOWER=0
SET UPPER=0
@FOR /f %%D IN ('%SVN_LOOK% youngest %SVN_REPOROOT%\%PROJECT%') DO set UPPER=%%D
if %UPPER%==0 GOTO :N_EXIT
if not exist %PROJECT%_last_revision.txt GOTO :BAKUP
rem 取出上次备份后的版本号,并做+1处理(注意此算法未在98系统验证)
@FOR /f %%C IN (%PROJECT%_last_revision.txt) DO @set LOWER=%%C
@set /a LOWER=%LOWER%+1
rem 不需要备份,则跳转结束
IF %LOWER% gtr %UPPER% GOTO :N_EXIT
:BAKUP
SET FILENAME=%PROJECT%_%LOWER%_%UPPER%
@ECHO 开始备份项目库:%PROJECT%,生成文件=%FILENAME%
%SVN_ADMIN% dump %SVN_REPOROOT%\%PROJECT% -r %LOWER%:head --incremental >%FILENAME%.dmp
%RAR_CMD% a -df %PROJECT%_%UPPER%.rar %FILENAME%.dmp
rem 准备写备份日志信息
IF %LOWER% gtr 0 GOTO :WRITENOTE
if not exist %PROJECT%_log.txt @copy ..\log.conf %PROJECT%_log.txt
@ECHO %date% >> %PROJECT%_log.txt
@echo -- 添加备份文件 %PROJECT%_%UPPER%.rar,从[%LOWER%]到[%UPPER%] >> %PROJECT%_log.txt
GOTO :COMPLETE
:WRITENOTE
@ECHO %date% >> %PROJECT%_log.txt
@echo -- 添加增量备份文件 %PROJECT%_%UPPER%.rar,从[%LOWER%]到[%UPPER%] >> %PROJECT%_log.txt
:COMPLETE
rem 下面一行用于拷贝备份文件到映射的驱动器上
rem copy %PROJECT%.rar z:\%PROJECT%\
@echo %UPPER% > %PROJECT%_last_revision.txt
:N_EXIT
@echo 项目库%PROJECT%处理结束...
@CD..
@exit /B
:no_args
@ECHO ON
@echo "正确调用方法: dump 项目库名"
【3】项目库列表 projectlist.conf,可以用windows的计划任务设定自动备份
引用:
;**************************************************
;01. 公共资源库
; 更新频率: 低
;**************************************************
comm
;**************************************************
;02. 造价中心WEB应用系统(含人员资质和造价分析)
; 更新频率: 一般
;**************************************************
dezxweb
;**************************************************
;03. 造价中心地面工程台帐查询系统
; 更新频率: 终止
;**************************************************
;dmgc
;**************************************************
;04. 井下作业综合管理系统
; 更新频率: 一般
;**************************************************
jxzy
;**************************************************
;05. ERP用户权限系统
; 更新频率: 低
;**************************************************
erpuser
【4】日志模版脚本 log.conf,可以用来作为每个新备份项目的日志模版
引用:
备份日志:
//这是一个日志文件的抬头信息,可以记录一些有意义的信息
这里是我的项目库备份日志实例
引用:
备份日志:
星期一 2007-02-12
-- 添加备份文件 dezxweb_794.rar,从[0]到[794]
星期三 2007-02-28
-- 添加增量备份文件 dezxweb_807.rar,从[795]到[807]
星期日 2007-03-04
-- 添加增量备份文件 dezxweb_808.rar,从[808]到[808]
星期日 2007-03-11
-- 添加增量备份文件 dezxweb_809.rar,从[809]到[809]
这个备份的脚本来自于 zhumingzhou的启发,也非常感谢david 帮我找到增量定义的方法。在此表示深深谢意!
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/caobin518/archive/2009/06/01/4229145.aspx
分享到:
相关推荐
post-commit.bat和deltaBackup.bat用的svnadmin dump命令,可以增量备份。 请注意,back.bat 、simplebackup.bat、post-commit.bat这三个文件放在文件版本库父目录(一般是X:\Repositories下面),deltaBackup.bat...
本压缩包"SVN备份脚本.rar"包含了实现SVN仓库自动备份的脚本,下面将详细介绍SVN备份脚本的使用、重要性以及如何进行定制。 1. SVN备份脚本的作用: SVN备份脚本的主要目的是定期备份SVN仓库,防止数据丢失。这在...
下面将详细介绍如何配置和使用SVN自动备份脚本。 1. **SVN基础** SVN的核心功能是追踪文件和目录的更改,它允许用户回滚到过去的版本,查看历史记录,并进行分支和合并操作。这对于团队协作和项目管理至关重要。 ...
- **linux下-SVN全量和增量备份脚本.docx**:这份文档可能包含了详细的Linux环境下编写SVN备份脚本的步骤和示例代码。 - **svnBackupBat.rar**:这是一个Windows批处理脚本的压缩包,可能包含全备份和增量备份的bat...
通过创建SVN备份脚本,我们可以确保在开发过程中对代码库进行安全保护,避免数据丢失。以下将详细介绍如何实现SVN的增量备份和全量备份。 1. **全量备份** 全量备份是指获取SVN仓库中的所有文件和版本历史的完整...
这段描述提到的“一段进行SVN备份的脚本”就是为了解决这一需求,它允许用户通过Windows计划任务自动化执行备份过程,以防止意外数据丢失。 首先,我们需要理解SVN备份的基本原理。SVN仓库通常存储在服务器上,包含...
### SVN增量备份脚本知识点详解 #### 一、SVN简介 Subversion(简称SVN)是一种开源的版本控制系统,用于管理源代码或文件目录树的变更。SVN通过记录每次提交的时间戳、作者和注释等元数据来追踪每个文件的历史变更...
增量备份是SVN备份策略的一种,它只备份自上次备份以来发生改变的数据,从而节省存储空间和备份时间。在这个"SVN增量备份脚本及MD5加密工具"中,包含了两个批处理脚本和一个MD5加密工具,旨在简化和增强SVN仓库的...
增量备份是SVN备份的一种策略,它只备份自上次备份以来发生改变的数据,从而减少备份所需的时间和存储空间。 在"SVN增量备份-附带脚本"这个主题中,我们将探讨如何使用提供的脚本来实现这一功能。 1. **dump.bat**...
备份脚本可能包括以下步骤: 1. 检查版本库是否存在并可访问。 2. 使用`svnadmin dump`或`svnadmin hotcopy`创建备份。 3. 将备份文件传输到安全的位置,如远程服务器或云存储。 4. 记录备份日志,包括备份时间、...
标题提到的“SVN数据库增量备份脚本”是为了定期或按需备份SVN服务器的数据,特别是针对数据库的变化部分。这种脚本通常基于shell、Python或其他编程语言编写,可以自动化执行备份任务,提高效率并减少人为错误。 ...
本主题聚焦于“svn配置库全量备份脚本”,这是一个关键的实践操作,对于确保项目数据的安全性和可恢复性至关重要。下面将详细介绍如何使用脚本来执行SVN全量备份,以及涉及到的相关技术知识点。 首先,我们需要理解...
svn自动增量备份 rem set logfile=svndump.log set SVN_HOME=C:\Progra~1\Subversion\bin set SVN_ADMIN="%SVN_HOME%\svnadmin.exe" set SVN_LOOK="%SVN_HOME%\svnlook.exe" set SVN_REPOROOT=e:\svn set RAR_CMD="C...
### SVN定时备份脚本知识点详解 #### 一、SVN定时备份原理与脚本功能解析 **Subversion(SVN)**是一种版本控制系统,广泛应用于软件开发领域,用于管理源代码的变化历史。对于大型项目,定期备份SVN仓库至关重要...
在提供的文档"SVN备份脚本完整资料.doc"中,可能包含了如何编写和配置这种自动化备份脚本的详细步骤,包括错误处理、日志记录和备份存储位置管理等内容。 五、Subversion配置文件 "配置文件.doc"可能涵盖了...
### SVN备份操作详解 #### 一、概述 版本控制系统的核心目标之一是确保数据的安全性和可靠性。对于企业级项目管理而言,任何因硬件故障或软件错误导致的数据丢失都是无法接受的。因此,制定全面且可靠的备份策略...
SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同...
对网上的SVN备份、还原、清理几天之前的备份进行了测试与修改。 全量备份:fullbackup.bat(使用前先修改目录)、hotcopy.bat 增量备份:svndump.bat(使用前先修改目录)、dump.bat、projectlist.conf(使用前先修改svn...
svnserver备份脚本,其中包含了备份repository,压缩备份文件、复制备份文件到远程计算机和还原备份说明。svn服务器的时间格式要改成YYYY-MM-DD,不然Backup.bat脚本会报错。最好不要使用svnserver4以上的版本,因为...
本文将详细介绍在Windows环境下如何设计一套完整的SVN备份方案,包括全量备份与增量备份。 #### 二、备份策略概述 **1. 定期大备份**:指定期对整个SVN仓库进行完全复制,确保在系统出现故障或数据丢失时能够快速...