windows下 SVN 自动备份脚本

2010-11-29  赵云峰 

本无参照网上各种说明,自测运行通过,终可使用。
首先建立名为Backup.bat批处理文件:
echo off
rem Subversion的安装目录
set SVN_HOME="C:\Program Files\Subversion"
rem 所有版本库的父目录
set SVN_ROOT=F:\svn\project  (project为库名称,copy后在自己本地运行时需去掉括号说明之内容)
rem 备份的目录
set BACKUP_SVN_ROOT=\\192.168.100.248\backup (运程地址,如备份到本地 F:\backup即可,copy后在自己本地运行时需去掉括号说明之内容)
set BACKUP_DIRECTORY=%BACKUP_SVN_ROOT%\%date:~0,10%
if exist %BACKUP_DIRECTORY% goto checkBack
echo 建立备份目录%BACKUP_DIRECTORY%>>%SVN_ROOT%/backup.log
md %BACKUP_DIRECTORY%
rem 验证目录是否为版本库,如果是则取出名称备份
for /r %SVN_ROOT% %%I in (.) do @if exist "%%I\conf\svnserve.conf" %SVN_ROOT%\simpleBackup.bat "%%~fI" %%~nI
goto end
:checkBack
echo 备份目录%BACKUP_DIRECTORY%已经存在,请清空。
goto end
:end

然后在project库下放入simpleBackup.bat文件:
@echo 正在备份版本库%1......
@%SVN_HOME%\bin\svnadmin hotcopy %1 %BACKUP_DIRECTORY%\%2
@echo 版本库%1成功备份到了%2!

其他说明:
本地处理方式为完全备份,没有采用自动压缩,如何实现压缩尚待探究;
备份目录backup需要先建立好,远程地址需要讲backup共享,需写入权限;
运行backup.bat文件,会在\\192.168.100.248\backup 目录里产生一个日期文件夹,里面是project库目录内容;
然后可以建立windows任务,定期执行backup.bat文件即可。
1102°/11020 人阅读/0 条评论 发表评论

登录 后发表评论