SVN备份

采用热备份机制,不影响svn正在使用,不需要启停svn服务。
svn资源路径查看---右键Repositories---properties
任务计划程序添加--windows管理工具---任务计划程序---创建基本任务
bak.bat

@echo off
:: 关闭回显
 
:: 设置标题
title SVN备份脚本
 
rem 设置变量
 
:: SVN_HOME svn程序的安装路径,指定到bin目录上一级。(如果路径有空格,请用"")
set SVN_HOME="D:\visualsvn\server"
:: SVN库的路径
set SVN_ROOT=D:\visualsvn\Repositories
:: 备份SVN父目录的路径
set SVN_BACKUP_ROOT=D:\visualsvn\SVNbackup
:: 获取当前系统日期和时间用来创建目录,格式:年月日_时分秒毫秒。如:20131129_16275274
set TIME_DIR=%date:~,4%%date:~5,2%%date:~8,2%_%time:~,2%%time:~3,2%%time:~6,2%%time:~9,2%
:: SVN备份子目录的路径
set BACKUP_DIRECTORY=%SVN_BACKUP_ROOT%\%TIME_DIR%
:: 日志文件路径(将日志和备份文件放在一个目录,删除时一起删除了)
set LOG=%BACKUP_DIRECTORY%\backup.log
:: 指定备份文件删除时间(单位:天)。0 - 32768 范围内的任何数字。
set NUM=1
 
rem 开始备份SVN
 
:: 判断SVN程序是否存在
if not exist %SVN_HOME% goto error
 
goto start
 
:start
:: 新建目录
mkdir %BACKUP_DIRECTORY%
:: 建立日志
@echo [info]%date:~,10% %time:~,2%:%time:~3,2%:%time:~6,2% :建立备份目录:%BACKUP_DIRECTORY% >>%LOG%
:: 备份SVN版本库并输出日志到文件
for /r %SVN_ROOT% %%I in (.) do @if exist "%%I\conf\svnserve.conf" call %SVN_ROOT%\simpleBackup.bat "%%~fI" %%~nI
:: 备份结束
@echo [info]%date:~,10% %time:~,2%:%time:~3,2%:%time:~6,2% :备份结束 >>%LOG%
:: 删除过期备份
goto delete
 
:delete
:: 输出要删除的目录到日志文件
@echo [info]%date:~,10% %time:~,2%:%time:~3,2%:%time:~6,2%删除%NUM%天前的备份:>>%LOG%
forfiles /P %SVN_BACKUP_ROOT% /M *_* /D -%NUM% /C "cmd /c echo 删除文件夹:@file">>%LOG%
:: 使用rd命令删除超过%NUM%天的备份目录。如果不存在匹配条件的目录,将提示:错误: 用指定的搜索标准没有找到文件。如果存在匹配的文件,则提示:目录名无效
forfiles /P %SVN_BACKUP_ROOT% /M *_* /D -%NUM% /C "cmd /c rd /s/q @path" 2>>%LOG%
goto end
 
:error
echo [error]%date:~,10% %time:~,2%:%time:~3,2%:%time:~6,2%程序目录不存在,请检查:%SVN_HOME%>>%LOG%
goto end
 
:end
:: 输出一行空行分割日志
@echo. >>%LOG%
exit
:: 调试脚本用的命令
:: at 16:06 %~f0
:: PAUSE
:: exit

simpleBackup.bat

@echo 正在备份版本库%1...... >>%LOG%
@%SVN_HOME%\bin\svnadmin hotcopy %1 %BACKUP_DIRECTORY%\%2
@echo 版本库%1成功备份到了%2>>%LOG%

simpleBackup.bat包含了svnadmin hotcopy备份命令,bak.bat包含扫描svn资源库、判断是否项目文件夹、循环调用备份、定时删除备份文件等机制。

主脚本为bak.bat,需要将两个脚本放到svn资源库路径下。
将bak.bat脚本,加入到windows任务时间计划中,定时执行即可。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
目的: 1、 在192.16.21.70上面配置SVN服务器(简称服务器A); 2、 定时将服务器A上面的程序自动备份到192.16.21.82服务器上(该服务器简称服务器B); 3、 服务器工具软件采用“VisualSVN Server Manager VisualSVN Ltd. 版本: 2.1.10”; 4、 服务器使用的操作系统均是Windows2003 Server; 配置服务器A: 步骤一:安装VisualSVN Server Manger软件,软件安装在D:\Program Files\VisualSVN Server\,库文件配置在” E:\Repositories\ “; 步骤二:创建用户和创建库文件 配置服务器B: 步骤一:安装VisualSVN Server Manger软件,软件安装在D:\Program Files\VisualSVN Server\,库文件配置在” E:\Repositories\ “; 步骤二:创建用户和创建K1_SVN_BAK库文件 步骤三、创建“pre-revprop-change.bat”文件:在“E:\Repositories\k1_svn_bak\hooks”目录下创建文件“pre-revprop-change.bat”,内容如下: @echo off exit 0; 步骤四、修改文件:修改pre-revprop-change.tmpl文件,用记事本打开该文件,把文件最后的exit 1改为exit 0 步骤五、同步初始化 在备份服务器B上,打开命令提示符窗口,将目录进入到如下:“D:\Program Files\VisualSVN Server\bin>”,在此目录下运行如下命令 svnsync init file:///e:/Repositories/k1_svn_bak https://192.16.21.70/svn/K1_SVN 步骤六、实现同步: 在备份服务器B上,打开命令提示符窗口,将目录进入到如下:“D:\Program Files\VisualSVN Server\bin>”,在此目录下运行如下命令: Svnsync sync file:///e:/Repositories/K1_SVN_BAK (如果提示输入用户名和密码,你可以在这个命令之后加上 username 、password参数 即svnsync sync file:///D:/Repositories/test1BackUp --username username --password password) 步骤七、实现定时备份 在“D:\Program Files\VisualSVN Server\bin”下创建一个*.bat文件,例如Autobat.bat文件,文件内容为如下: svnsync sync file:///e:/Repositories/k1_svn_bak 然后通过Windows自带的任务计划,创建定时任务即可。 如果版本库较大时,备份的时间会有点慢,花费几个小时或者一天也是有可能的,

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值