`
lineageII
  • 浏览: 80227 次
  • 来自: ...
社区版块
存档分类
最新评论

svn同步备份

阅读更多

svn服务器ip地址10.200.144.250 svn备份服务器ip地址10.200.144.251

1. 在备份服务器上创建svn仓库 

svnadmin create D:\ur_backup\ur

2. 在svn备份服务器hooks目录下新建文件pre-revprop-change.bat,打开pre-revprop-change.bat写入

exit 0;

  保存。

3. 在svn服务器hooks目录下新建文件post-commit.bat,打开post-commit.bat写入

svnsync sync --non-interactive svn://10.200.144.251/ --username admin --password admin

 4.同步初期化,在备份服务器运行下面的命令

svnsync init svn://10.200.144.251 svn://10.200.144.250

  会要求输入用户名密码,填入备份svn的用户名和密码。

5.同步版本库,在备份服务器运行下面的命令

svnsync sync svn://10.200.144.251/ --username admin --password admin

 

注意事项:不能在备份服务器进行提交操作。

 

打包备份

 

 dumpall.bat备份,打包用到了window自带的zip命令,找不到zip命令的话,到http://www.johntdow.com/download/zipunzip.exe下载解压到c:/windows/system32目录下
@ECHO OFF
SET DUMPTO_DIR="."
if not "%1" == "" (
echo Back up all to %1
SET DUMPTO_DIR=%1
)

SET VAR_DATE=%DATE:~0,4%%DATE:~5,2%%DATE:~8,2%
dir /B /AD > DIRS

IF EXIST DUMP_FILES (
DEL /Q DUMP_FILES
)
FOR /F %%i IN (DIRS) DO (
SET REPOS_NAME=%%i
CALL :DUMP_REPOS
)
SET REPOS_NAME=

ECHO.
IF EXIST %DUMPTO_DIR%\Repos_%VAR_DATE%.zip (
echo Delete existing compressed dump file
del %DUMPTO_DIR%\Repos_%VAR_DATE%.zip
)
ECHO Compressing dump files...
zip -j %DUMPTO_DIR%\Repos_%VAR_DATE%.zip %DUMPTO_DIR%\*.bin

ECHO Delete dump files...
FOR /F %%i IN (DUMP_FILES) DO (
DEL /Q %DUMPTO_DIR%\%%i
)

DEL /Q DIRS
DEL /Q DUMP_FILES
SET DUMPTO_DIR=

ECHO Successed.
GOTO :EOF

::==== Functions ====
:DUMP_REPOS
SET DUMP_FILE=%REPOS_NAME%.bin
ECHO Dumping repository ^"%REPOS_NAME%^" ...
svnadmin dump ^"%REPOS_NAME%^" -q > %DUMPTO_DIR%/%DUMP_FILE%
IF %errorlevel%==0 (
ECHO %DUMP_FILE% >> DUMP_FILES
) ELSE (
DEL /Q %DUMP_FILE%
ECHO Dump ^"%REPOS_NAME%^" failed.
)
SET DUMP_FILE=

ECHO.

 

 loadall.bat,解压zip文件后才能还原

SET VAR_IS_EMPTY_DIR=TRUE

SET LOAD_DIR=".";
IF NOT "%1"=="" (
SET LOAD_DIR=%1
)

echo %LOAD_DIR%

SET VAR_IS_EMPTY_DIR=
dir /B /A-D %LOAD_DIR%\*.bin > DUMP_FILES
IF "%errorlevel%"=="0" (
ECHO Finded dump file.
) ELSE (
ECHO Error : Can not find dump file.
DEL DUMP_FILES
GOTO :EOF
)
FOR /F %%i IN (DUMP_FILES) DO (
SET REPOS_FILE=%%i
CALL :LOAD_REPOS
)
SET REPOS_FILE=
DEL /Q DUMP_FILES
ECHO Successed.
GOTO :EOF
::==== Functions ====
:LOAD_REPOS
SET REPOS_NAME=%REPOS_FILE:~0,-4%
mkdir %REPOS_NAME%
ECHO %REPOS_NAME%
ECHO Loading repository ^"%REPOS_NAME%^" ...
svnadmin create %REPOS_NAME%
svnadmin load -q %cd%\%REPOS_NAME% < %LOAD_DIR%/%REPOS_FILE%
IF %errorlevel%==0 (
ECHO %DUMP_FILE% >> DUMP_FILES
) ELSE (
RMDIR /Q %REPOS_NAME%
ECHO Load ^"%REPOS_NAME%^" failed.
)
SET REPOS_NAME=
ECHO.

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics