SVN自动实现全量备份(Windows服务器)

一、SVN全量备份脚本:

1)新建文件backup.bat,打开编辑,输入如下内容:

echo off

rem Subversion的安装目录  

set SVN_HOME="C:\Program Files (x86)\VisualSVN Server"


rem 所有版本库的父目录  

set SVN_ROOT=D:\Repositories


rem 备份的目录  

set BACKUP_SVN_ROOT=D:\SvnBak       (备注:红色标识的地方根据实际情况需要修改)


rem 创建存放版本库的临时目录  

set BACKUP_DIRECTORY=%BACKUP_SVN_ROOT%\%date:~0,10%

if exist %BACKUP_DIRECTORY% goto checkBack  

echo %date:~0,10% %time:~0,-3% : 建立备份目录%BACKUP_DIRECTORY%>>%SVN_ROOT%/backup.log


rem 创建备份目录  

md %BACKUP_DIRECTORY%


rem 验证目录是否为版本库,如果是则取出名称备份  

for /r %SVN_ROOT% %%I in (.) do @if exist "%%I\conf\svnserve.conf" call %SVN_ROOT%\simpleBackup.bat "%%~fI" %%~nI  

echo 开始压缩版本库,请不要中止....  


%SVN_ROOT%\7z.exe a -tzip %BACKUP_SVN_ROOT%\%date:~0,10%.zip %BACKUP_DIRECTORY%\* -r >nul 

echo 版本库压缩完成!  

xcopy D:\SvnBak\%date:~0,10%.zip \\IP地址\文件夹

(备注:此句是将本地备份拷到其它路径7Z.exe也可以换成WinRAR.exe,将WinRAR.exe拷入Repositories下,目标路径若是服务器,则需要先映射到本地(注意,须映射),不需要可删除此句)

rem 清除临时创建备份目录  


cd %BACKUP_SVN_ROOT%

rd/s/q %BACKUP_DIRECTORY%  

rem del %date:~0,10%.zip%  /s/q

goto end

:checkBack  

echo 备份目录%BACKUP_DIRECTORY%已经存在,请清空。

goto end

:end


2)新建文件simpleBackup.bat,打开编辑,输入如下内容:

@echo 正在备份版本库%1......   

@md %BACKUP_DIRECTORY%\%2 

@%SVN_HOME%\bin\svnadmin hotcopy %1 %BACKUP_DIRECTORY%\%2  

@echo 版本库%1成功备份到了%2!


3)将以上两个脚本及压缩软件.exe放入Repositories下即可


二、实现定点自动备份:

   打开“任务计划程序”(windows7在管理工具下面),进行“创建任务计划”,创建本人执行计划时屡次失败,执行脚本可以,但就是不会自动执行,在安全选项运行任务时原来选了“不管用户是否登录都要运行,使用最高权限”,在改为“只在用户登录时运行”反而可以,即使关掉远程桌面仍然可以,具体原因就不知道了

spacer.gifwKiom1ah1wXx8FW9AADvSGgqUSA127.png


另附Xcopy命令:

xcopy D:\Svnbak  \\192.168.1.1\yidibeifen\%DATE:~0,4%_%DATE:~5,2%_%DATE:~8,2%\  /e/y

cd /d D:\Svnbak 

del * /s/q

这是将本地备份Svnbak下的所有内容上传到192.168.1.1\yidibeifen下以日期为文件夹,并且删除本地备份Svnbak下的所有内容


你可能感兴趣的:(windows,SVN,全量备份)