一、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在管理工具下面),进行“创建任务计划”,创建本人执行计划时屡次失败,执行脚本可以,但就是不会自动执行,在安全选项运行任务时原来选了“不管用户是否登录都要运行,使用最高权限”,在改为“只在用户登录时运行”反而可以,即使关掉远程桌面仍然可以,具体原因就不知道了
另附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下的所有内容