`
liangz
  • 浏览: 76922 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

SVN自动全备份及增量备份脚本,包含文件压缩,可加入window 任务

    博客分类:
  • SVN
阅读更多

在此也谢谢提供脚本的高人。
我的备份策略是一个月一次全备份,一周一次增量备份,并且每天也进行增量备份,在Window任务里设置定时进行,设置好后就不用管了,再加一层保险就是定期把备份文件移到另外一台机器存储。
(一)全备份,包含两个文件hotcopy.bat和最终执行文件fullbackup.bat
1) hotcopy.bat
@echo 正在备份版本库%1……
rem @%SVN_HOME%\bin\svnadmin hotcopy %1 %BACKUP_DIRECTORY%\%2
@%SVN_HOME%\svnadmin hotcopy %1 %BACKUP_DIRECTORY%\%2
@echo 版本库%1成功备份到了%2!


2)fullbackup.bat
echo off
rem Subversion的安装目录
rem set SVN_HOME="F:\Program Files\Subversion"
set SVN_HOME="F:\Program Files\CollabNet Subversion Server"
rem 所有版本库的父目录
set SVN_ROOT=G:\SVN
rem 备份的目录
set BACKUP_SVN_ROOT=h:\svnrootbak
set BACKUP_DIRECTORY=%BACKUP_SVN_ROOT%\%date:~0,10%

if exist %BACKUP_DIRECTORY% goto checkBack
echo 建立备份目录%BACKUP_DIRECTORY%>>%SVN_ROOT%/fullbackup.log
mkdir %BACKUP_DIRECTORY%
rem 验证目录是否为版本库,如果是则取出名称备份
for /r %SVN_ROOT% %%I in (.) do @if exist "%%I\conf\svnserve.conf" hotcopy.bat "%%~fI" %%~nI
goto end
:checkBack
echo 备份目录%BACKUP_DIRECTORY%已经存在,请清空。
goto end
:end


(二)增量备份,包含三个文件,dump.bat、最终执行文件svndump.bat和配置库名称配置projectlist.conf
1)dump.bat
@ECHO OFF
rem 调用格式:dump 项目库名
if "%1"=="" goto no_args
set PROJECT=%1
if not exist %RAR_STORE%\%PROJECT% mkdir %RAR_STORE%\%PROJECT%
cd %RAR_STORE%\%PROJECT%
SET LOWER=0
SET UPPER=0

@echo 项目库%PROJECT%2...>> %Log_PATH%\%PROJECT%_log.txt
%SVN_LOOK% youngest %SVN_REPOROOT%\%PROJECT%> %Log_PATH%\A.TMP
@echo 项目库%PROJECT%3...>> %Log_PATH%\%PROJECT%_log.txt
@FOR /f %%D IN (%Log_PATH%\A.TMP) DO set UPPER=%%D
if %UPPER%==0 GOTO :N_EXIT
if not exist %Log_PATH%\%PROJECT%_last_revision.txt GOTO :BAKUP
rem 取出上次备份后的版本号,并做+1处理(注意此算法未在98系统验证)
@FOR /f %%C IN (%Log_PATH%\%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
rem %RAR_CMD% a -df %PROJECT%_%UPPER%.rar %
rem 准备写备份日志信息
IF %LOWER% gtr 0 GOTO :WRITENOTE
@ECHO ------2-----%date% >> %Log_PATH%\%PROJECT%_log.txt
@echo -- 3-------添加备份文件 %PROJECT%_%UPPER%.rar,从[%LOWER%]到[%UPPER%] >> %Log_PATH%\%PROJECT%_log.txt
GOTO :COMPLETE

:WRITENOTE
@ECHO %date% >> %Log_PATH%\%PROJECT%_log.txt
@echo -- 4------添加增量备份文件 %PROJECT%_%UPPER%.rar,从[%LOWER%]到[%UPPER%] >> %Log_PATH%\%PROJECT%_log.txt

:COMPLETE
rem 下面一行用于拷贝备份文件到映射的驱动器上
rem copy %PROJECT%.rar %RAR_STORE%\%PROJECT%\
move %FILENAME%.dmp %RAR_STORE%\%PROJECT%\
del %Log_PATH%\A.TMP
@echo %UPPER% > %Log_PATH%\%PROJECT%_last_revision.txt

:N_EXIT
@echo 项目库%PROJECT%处理结束...>> %Log_PATH%\%PROJECT%_log.txt
@CD..
@exit /B
:no_args
@ECHO ON
@echo "正确调用方法: dump 项目库名"


2)svndump.bat
echo off
rem Subversion的安装目录及执行文件
set SVN_HOME="F:\Program Files\CollabNet Subversion Server"
set SVN_ADMIN=%SVN_HOME%\svnadmin.exe
set SVN_LOOK=%SVN_HOME%\svnlook.exe
rem 配置库仓库根目录
set SVN_REPOROOT=G:\SVN
rem 压缩命令
set RAR_CMD="E:\Progra~1\WinRAR\WinRAR"
rem 增量备份文件存放路径
set RAR_STORE="H:\svnincrementW"
rem 日志及最后一次备份修订号存放文件目录,以下是跟增量备份脚本目录同一目录
set Log_PATH=G:\backup\incrementW

@echo 项目库%PROJECT%处理1...>> %Log_PATH%\%PROJECT%_log.txt
rem 读取项目库列表文件,并忽略其中;开头的行
FOR /f "eol=;" %%C IN (projectlist.conf) DO call G:\backup\incrementW\dump.bat %%C


3)projectlist.conf
;**************************************************
;01. project1开发库
; 更新频率: 高
;**************************************************
PROJECT1
;**************************************************
;02. 此处可写注释信息
;**************************************************
PROJECT2
PROJECT3
PROJECT4
PROJECT5

分享到:
评论

相关推荐

    windows&linux svn自动化全备份&增量备份脚本

    - **windows svn自定全被封和增量备份执行步骤.txt**:该文本文件详细描述了在Windows上设置SVN自动备份的步骤,包括设置任务计划和执行脚本的指导。 在实施这些备份策略时,确保备份的完整性和安全性至关重要,...

    Svn最强大的Windows下实现自动全量增量备份和异地备份,一切自动化完成

    最强大的Svn在Windows下实现自动全备份和增量备份,以及异地备份,一切自动化完成 1.SVN备份内容 SVN在Windows下的自动备份实现,包括: 1)SVN目录的全备份(1周或1个月备份1次,由windows计划来调度执行); 2)...

    SVN增量备份脚本及MD5加密工具

    在这个"SVN增量备份脚本及MD5加密工具"中,包含了两个批处理脚本和一个MD5加密工具,旨在简化和增强SVN仓库的备份过程。 `work_dump_in.bat`可能是一个工作副本备份脚本,通常用于备份工作目录中的更改。在SVN中,...

    SVN增量备份-附带脚本

    在"SVN增量备份-附带脚本"这个主题中,我们将探讨如何使用提供的脚本来实现这一功能。 1. **dump.bat**:这是一个批处理脚本,通常用于执行SVN的dump命令。`svnadmin dump`命令用于从SVN仓库创建一个完整的数据转储...

    svn增量备份脚本

    本脚本主要实现了SVN仓库的增量备份功能,具体步骤包括读取上次备份的最新版本号、检查是否有新版本需要备份、进行增量备份并更新记录文件等操作。下面将详细解析脚本中的各个部分: ##### 1. 变量定义与初始化 ```...

    史上最好用的SVN自动(增量)备份&还原批处理脚本

    - `BackUp.bat` 可能是执行SVN备份的批处理脚本,它可能包含了一系列的命令,如`svn export`或`svn diff`来识别和备份修改过的文件,并可能利用时间戳或其他机制来确保增量备份的正确性。 - `LoadBackUp.bat` 很可能...

    SVN(windows平台)自动备份脚本

    - **创建备份脚本**:编写一个批处理文件(例如`SvnBack.bat`),其中包含SVN的导出命令,用于将仓库内容导出到指定的备份位置。例如: ```bash svn export --non-interactive --trust-server-cert ...

    svn远程完全增量备份批处理文件

    在svn中,可以通过特定的命令来实现增量备份,比如`svnadmin dump`命令,它可以生成一个包含所有版本信息的转储文件,然后我们可以通过比较不同时间点的转储文件来确定哪些是新增或修改的。 接下来,批处理文件...

    SVN数据库增量备份脚本

    实现SVN增量备份脚本的基本步骤可能包括: 1. **连接到SVN服务器**:使用SSH或其他协议建立安全连接。 2. **获取当前状态**:通过SVN命令行工具(如`svn diff`或`svn status`)获取仓库的最新状态。 3. **比较差异*...

    SVN备份操作(包括完全备份,增量备份和同步版本库)

    Subversion(简称SVN)作为一款广泛使用的集中式版本控制系统,在备份方面提供了多种机制来满足不同场景的需求,主要包括完全备份、增量备份以及版本库同步等方法。 #### 二、完全备份 完全备份是最基础也是最直接...

    SVN全量和增量备份脚本

    3. **备份命名规则**:全量备份文件名为 `weekly_fully_backup.yymmdd`,增量备份文件名为 `daily-incremental-backup.yymmdd`。 4. **备份时间**:每晚02点开始执行备份任务。 #### 三、备份脚本实现 ##### 1. ...

    SVN自动备份代码/文档功能

    `svnadmin dump`命令会导出SVN仓库的全部内容到一个二进制文件,这个文件就是备份文件。为了实现自动化,我们需要编写一个批处理文件或使用shell脚本来执行这个命令,并将其配置为Windows计划任务的一部分。 1. **...

    linux svn自动备份

    本篇将详细解释如何在Linux下创建一个自动备份SVN仓库的shell脚本,并将其设置为计划任务。 首先,我们需要创建一个存放备份数据的路径。在示例中,路径是`/home/backup1/svn`。使用`mkdir -p`命令创建目录,`-p`...

    svnsync同步增量备份

    ### svnsync同步增量备份详解 #### 一、概述 Subversion (SVN) 是一个广泛使用的版本控制系统,被众多开发团队用于管理源代码。在实际应用中,为了确保数据的安全性和系统的稳定性,通常需要对 SVN 仓库进行备份。...

    svn自动备份脚本.zip

    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...

    windows_linux_svn_自动化全备份_增量备份_2.zip

    9. **文件“windows_linux_svn_自动化全备份_增量备份_2.rar”**:这个RAR文件很可能包含实现上述备份流程的脚本、配置文件或指南。解压后,用户可以按照文档指示操作,为自己的Windows和Linux SVN环境设置自动备份...

    文件自动备份脚本WithSVN

    "AutoCommit.bat"可能是实现自动备份的关键脚本,它可能包含定时任务或事件触发器,定期执行SVN的提交操作,将文件系统的变化同步到SVN仓库中。这种自动化的备份流程可以确保在设定的时间间隔内,文件系统的最新状态...

    SVN版本库备份操作脚本

    "SVN版本库备份操作脚本"就是针对这一需求设计的工具,它能够帮助用户自动化执行SVN版本库的备份任务,并且包含完全备份以及增加备份日志的功能。 完全备份是指对SVN版本库的完整复制,包括所有文件、目录和版本...

    SVN 自动备份

    在这个案例中,脚本可能包含了执行SVN导出、压缩以及存储备份文件的步骤。 【标签】:“源码 工具” “源码”标签可能意味着这个备份方法涉及到了编写或使用源代码,比如批处理脚本,它由开发者手动编写,包含特定...

Global site tag (gtag.js) - Google Analytics