在windows上自动备份SVN版本库及定时删除

下面的脚本是在windows SVN的备份策略,采用的是hotcopy的方法

方案一:

1.先创建一个fullBackup的脚本;fullBackup.bat

echo off

rem Subversion的安装目录
set SVN_HOME="D:\Program Files\Subversion\bin"

rem 所有版本库的父目录
set SVN_ROOT=D:\svnserver

rem 备份的目录
set BACKUP_SVN_ROOT=D:\backupsvn\fullbackup
set BACKUP_DIRECTORY=%BACKUP_SVN_ROOT%\%date:~0,4%%date:~5,2%%date:~8,2%
set LOG_FILE=fullbackup-%date:~0,4%%date:~5,2%%date:~8,2%.log
if exist %BACKUP_DIRECTORY% rd /s/q %BACKUP_DIRECTORY%
echo 建立备份目录%BACKUP_DIRECTORY%>>%SVN_ROOT%\%LOG_FILE%
mkdir %BACKUP_DIRECTORY%

mkdir %BACKUP_DIRECTORY%\conf
xcopy %SVN_ROOT%\conf %BACKUP_DIRECTORY%\conf
echo %SVN_ROOT%\conf成功备份到了%BACKUP_DIRECTORY%\conf>>%SVN_ROOT%\%LOG_FILE%

rem 验证目录是否为版本库,如果是则取出名称备份
for /r %SVN_ROOT% %%I in (.) do @if exist "%%I\conf\svnserve.conf" hotcopy.bat "%%~fI" %%~nI

2.在创建一个热备脚本,hotcopy.bat

@echo 正在备份版本库%1……
@%SVN_HOME%\svnadmin hotcopy %1 %BACKUP_DIRECTORY%\%2
@echo 版本库%1成功备份到了%2!
echo 版本库%1成功备份到了%BACKUP_DIRECTORY%\%2>>%SVN_ROOT%\%LOG_FILE%

3.定期删除一个月之前的备份,delSVN.bat

echo on
rem 需要删除的SVN备份目录
set BACKUPSVN_ROOT="D:\backupsvn\fullbackup"
rem 正在删除30天前的备份版本库。。。
forfiles /p %BACKUPSVN_ROOT% /s /m * /d -30 /c "cmd /c del /s/q @path"
rem 删除空文件夹
dir /ad/b/s %BACKUPSVN_ROOT% |sort /r >f:\kill.txt
For /f "tokens=*" %%i in (f:\kill.txt) DO rd "%%i"
del f:\kill.txt

4.将这三个脚本放到一个目录下,点击fullBackup.bat就会在备份目录下生成YYmmdd/版本库。但是遗憾的是我将这个fullBackup放到任务计划程序中执行,下面的一个hotcopy.bat总是没执行成功,我已放弃。

方案二:

写一个备份脚本 hotcopy.bat

svnadmin hotcopy D:\Repositories\root F:\SVN\fullbackup\%date:~0,4%%date:~5,2%%date:~8,2%

放到任务计划执行就OK了,再结合delSVN.bat就可以达到定期删除的目的。

时间: 2024-10-06 21:51:09

在windows上自动备份SVN版本库及定时删除的相关文章

用svnsync 同步备份 svn 版本库 从一台服务器到另一台服务器

如用svnsync 同步备份两台机器的svn .(就以linux服务器到windows服务器为例子) 要同步的项目名称:source_svn svn 版本库1 .4 以上 源目录:            svn://192.168.16.199/source_svn 同步目标目录:      http:// 目标IP:8080/source_svnbak 方法: 1.如果目标目录存在相同的项目,请先清除,重新建立空项目 2.在目标服务器中建立svn版本库source_svnbak svnadmi

对svn版本库磁盘空间瘦身

问题原因: 平常自己写的测试项目都放在自己电脑上的一个svn版本库里,有些资料放进去后来又删掉了,但是svn版本库是不会减少的, 如果放进去了一个200M的项目,版本历史是 50, 这时候可去看下svn库,下的 db/revs/0/50 这个文件,将永久存在这个svn库中, 如果这个项目将来想还原出来,这个功能倒是有用,如果是永久放弃,就需要 对svn库进行下瘦身了 一. 导出整个版本库 svnadmin dump F:/SVN/test  > F:/SVN/dump 我的版本库跟路径是F:/S

CentOS 7 环境下部署 SVN 并实现自动更新(版本库放在Tomcat下)

1.安装 SVN 1.1先检查是否有安装 svn rpm -qa subversion #没有什么显示就说明没有安装过yum remove subversion #如果有安装就运行删除老版本yum install subversion #运行安装SVN 1.2创建SVN版本库(这里我们直接部署到Tomcat/webapps下,如果没有可以自行部署一个Tomcat) mkdir -p /usr/local/tomcat/webapps/svn 1.3创建版本库 svnadmin create /u

SVN版本库的备份及迁移

备份某个版本库:打开控制台窗口 1.备份某个版本库: svnadmin dump myrepos > dumpfile //将指定的版本库导出成文件dumpfile 1.导入某个版本库: svnadmin load newrepos < dumpfile 更详细参考 http://blog.csdn.net/windone0109/article/details/2908133 初级篇: 版本库数据的移植:svnadmin dump.svnadmin load 导出: $svnlook you

Linux 搭建svn版本库

一.安装svn服务器端yum install subversion      从镜像下载安装svn服务器端 如果后面执行“svnadmin create /usr/local/svn/sunny”提示错误:“command not found”,把这句“mount /dev/cdrom /media/cdrom/  ”话挂在这句“yum install subversion”之前 cd /usr/local/              //进入目录,准备创建svn目录 mkdir svn    

SVN版本库(访问权限)配置实例笔记

http://blog.csdn.net/zjianbo/article/details/8578297 SVN版本库(访问权限)配置实例笔记 本系列文章由ex_net(张建波)编写,转载请注明出处. http://blog.csdn.net/ex_net/article/details/8578297 作者:张建波 邮箱: [email protected] 电话:13577062679 欢迎来电交流! 访问控制如图所示 说明: why用户仅仅只能访问(读写)yjb目录,对其它目录是无法“查看

windows下SVN版本库迁移小结

SVN需求:搬迁至异地上云环境,迁移过程将影响用户的时间减少至最小. SVN常见的几种迁移方案: 第一种:整个SVN库目录打包迁移,原库大小17G,打包加迁移时间预估时间约5小时以上,中断不符合要求. 第二种:svnadmin 自带的dump导出load导入方式迁移 :所有版本导出大小超过了磁盘剩余空间(不小于40G),中断不符合要求. 第三种:通过svnsync钩子脚本同步方式进行第一次全量同步,迁移时增量同步(预计最快时间十分钟左右). 利用svnsync同步过程: 1. 原SVN服务器与目

SVN版本库的备份、还原、移植(初级篇、中级篇和高级篇)

版本库数据的移植:svnadmin dump.svnadmin load 导出: $svnlook youngest myrepos //查看到目前为止最新的版本号 $svnadmin dump myrepos > dumpfile //将指定的版本库导出成文件dumpfile 导入: $svnadmin load newrepos < dumpfile 中级篇: $svnadmin dump myrepos –r 23 >rev-23.dumpfile           //将ver

SVN版本库修改URL路径或者IP地址

服务器的IP地址或者URL变更,版本库服务器的IP也要修改,因为当初安装SVN URL没有使用别名,所以使用的人都要修改客户端的IP,以下是参考网上的资料. 1.Windows TortoiseSVN客户端: 在工作复本的根目录上右键->TortoiseSVN->重新定位(Relocate),然后修改URL, 2.Mac OS或Linux客户端: svn sw --relocate svn://old_ip/目录 svn://new_ip/目录