SVN 自动备份脚本

用记事本新建个.bat文件,把下面的内容copy到文本中保存,修改你自己的环境设置,就好实现这脚本的功能了。

bakcup_svn.bat

SET ZIP_CMD=e:\backup_command\7-zip\7z.ex

SET REPO_PATH=d:\SVNROOT\%1
SET REPO_NAME=%1

SET DATE=%2

SET BACKUP_ROOT=E:\backup_root\svn
SET SUBVERSION_ROOT="D:\VisualSVN Server"
SET BACKUP_FILE=%BACKUP_ROOT%\%DATE%\%REPO_NAME%.%DATE%.svn_dump

mkdir %BACKUP_ROOT%\%DATE%

%SUBVERSION_ROOT%\bin\svnadmin.exe dump %REPO_PATH% > %BACKUP_FILE%

%ZIP_CMD% a -tzip %BACKUP_ROOT%\%DATE%\%REPO_NAME%_%DATE%.zip %BACKUP_FILE%

del %BACKUP_FILE% /Q /S

 

*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/

 

dim strRRev
strRRev = GetYoungestFileRev("D:\Work\软件研发中心\SVN备份\youngestRev.txt")
dim strLastRev
'写最新版本
call WriteLastRev()
strLastRev = GetYoungestFileRev("D:\Work\软件研发中心\SVN备份\youngestRev.txt")
'开始增量备份
call DoDailyBackup(clng(strRRev)+1,strLastRev)
msgbox "ok"

function GetYoungestFileRev(vPath)
    Dim vYoungestFile
    vYoungestFile = vPath
    Dim vFso
    Set vFso = CreateObject("Scripting.FileSystemObject")
    Dim vstream
    Set vstream = vFso.OpenTextFile(vYoungestFile, 1, false)
    Dim vRRev '上一个版本
    While Not vstream.AtEndOfStream
        vRRev = vstream.ReadLine
    Wend
    GetYoungestFileRev = vRRev
    vstream.close
    set vstream = nothing
    set vfso = nothing
end function

function DoDailyBackup(vPRev,vLRev)
    Set WshShell = Wscript.CreateObject("Wscript.Shell")
    dim vDailyBKCMD
    dim vSVNRoot
    dim vSVNADMIN
    dim svn_repos
    dim backup_dir
    dim next_backup_file
    dim vdate
    dim vProjName
    vdate =  fomat(date,"yyyy-mm-dd")
   
    vSVNRoot = "D:\Program Files\VisualSVN Server\bin"
    vSVNADMIN = vSVNRoot & "\svnadmin"
    vProjName = "GeoGlobe4_5"
    svn_repos = "D:\SourcesafeSVN\Repositories\"& vProjName

    backup_dir = "D:\SVNBACKUP\WeekBackup\svn\" &vdate& "\"
    next_backup_file = vProjName& "_daily_incremental_backup" & "_" & vdate &

".svn_dump"
    vDailyBKCMD = vSVNADMIN & " dump --incremental --revision " & vPRev & " " &

vLRev &" " & svn_repos & " > " &backup_dir & next_backup_file
    WshShell.Run vDailyBKCMD
end function
function WriteLastRev()
    Set WshShell = Wscript.CreateObject("Wscript.Shell")
    WshShell.Run "D:\SVNBACKUP\GetYoungestRev.bat"
end function

 

*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/

 

SET hour=%time:~0,2%
SET hour=%hour: =%
SET DATE=%date:~0,10%_%hour%_%time:~3,2%_%time:~6,2%

bakcup_one_svn.bat 库1 %DATE%
bakcup_one_svn.bat 库2 %DATE%

你可能感兴趣的:(SVN,自动备份脚本)