svn定時備份腳本


參考:https://www.cnblogs.com/yadongliang/p/9297058.html

以下腳本可直接拿去用,待完善(刪除定時備份)

@echo off
:: 關閉回顯
 
:: 說明:如有命令不明白,請使用幫助命令:命令/? 。如:for/?
 
:: 設置標題
title SVNBackup
 
rem Set Variable
 
:: SVN_HOME svn程序的安裝路徑,指定到bin目錄上一級。(如果路徑有空格,請用""。)
set SVN_HOME="C:\Program Files\VisualSVN Server"
:: SVN庫的路徑
set SVN_ROOT=F:\Repositories
:: 備份SVN父目錄的路徑
set SVN_BACKUP_ROOT=F:\SVN_backup
:: 獲取當前系統日期和時間用來創建目錄,格式:年月日_時分秒毫秒。如:20131129_16275274
set TIME_DIR=%date:~,4%%date:~5,2%%date:~8,2%%time:~,2%%time:~3,2%%time:~6,2%%time:~9,2%
:: SVN備份子目錄的路徑
set BACKUP_DIRECTORY=%SVN_BACKUP_ROOT%\%TIME_DIR%
:: 日志文件路徑(將日志和備份文件放在一個目錄,刪除時一起刪除了)
set LOG=%BACKUP_DIRECTORY%\backup.log
:: 指定備份文件刪除時間(單位:天)。0 - 32768 范圍內的任何數字。
set NUM=365
 
rem Start backup SVN
 
:: 判斷SVN程序是否存在
if not exist %SVN_HOME% goto error
 
goto start
 
:start
:: 查詢日志大小(單位:字節),超過1Mb就新建一個 (日志放入備份目錄后,此語句無效。僅備份!)
:: for /r %SVN_BACKUP_ROOT% %%I in (backup.log) do if %%~zI GEQ 1048576 ren %LOG% backup_%TIME%.log
:: 判斷目錄是否存在,存在則不備份
if exist %BACKUP_DIRECTORY% (
rem backup is exist
@echo %BACKUP_DIRECTORY% is exist. >>%LOG%
goto end
)
:: 新建目錄
mkdir %BACKUP_DIRECTORY%
:: 建立日志
@echo [info]%date:~,10% %time:~,2%:%time:~3,2%:%time:~6,2%Create a backup directory: %BACKUP_DIRECTORY% >>%LOG%
:: 備份SVN版本庫並輸出日志到文件
for /d %%i in (%SVN_ROOT%\*) do (
@echo Backup %%~ni repository,backup filename: %%~ni.dmp >>%LOG%
:: 完整備份(增量備份在dump后面添加參數 --incremental)
%SVN_HOME%\bin\svnadmin dump %SVN_ROOT%\%%~ni >%BACKUP_DIRECTORY%\%%~ni.dmp 2>>%LOG%
)
:: 輸出備份命令退出碼,用來判斷是否備份成功。成功的退出碼為0.
@echo [info]%date:~,10% %time:~,2%:%time:~3,2%:%time:~6,2%exit_code:%errorlevel%>>%LOG%
goto end

:end
:: 輸出一行空行分割日志
rem End backup SVN
@echo success backup >>%LOG%
exit
:: 調試腳本用的命令
:: at 16:06 %~f0
:: PAUSE
:: exit

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM