svn定時備份指令碼

2022-03-30 14:13:02 字數 2033 閱讀 4563

參考:

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

@echo

off::

關閉回顯

::::

設定標題

title svnbackup

remset 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

remstart backup svn

::判斷svn程式是否存在

ifnot

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

::判斷目錄是否存在,存在則不備份

ifexist %backup_directory% (

rembackup 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

::輸出一行空行分割日誌

remend backup svn

@echo success backup >>%log%

exit

::除錯指令碼用的命令

::at 16:06 %~f0

::pause

::exit

SVN定時備份bat指令碼

文章目錄 隱藏 echo off 關閉回顯 設定標題 rem 設定變數 set svn backup root d svnbackup 獲取當前系統日期和時間用來建立目錄,格式 年月日 時分秒毫秒。如 20131129 16275274 set time dir date 4 date 5,2 da...

svn備份指令碼

svn備份一般採用三種方式 1 svnadmin dump 2 svnadmin hotcopy 3 svnsync.注意,svn備份不宜採用普通的檔案拷貝方式 除非你備份的時候將庫暫停 如copy命令 rsync命令。筆者曾經用 rsync命令來做增量和全量備份,在季度備份檢查審計中,發現備份出來...

SVN備份指令碼

bin bash maxdays 7 備份保留最大天數 time date y m d h m s svnpath data1 svn ser 定義倉庫repos路徑 bakdir data1 svnback 定義備份主目錄 baksubdir 定義全備路徑 baklog log 定義備份日誌 d ...