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
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值