Trac Lightning 用のSubversion世代バックアップバッチを作ってみた
おはようございます。
今日は Trac Lightning のプロジェクトデータと
Subversion の データを世代バックアップするバッチを作ったので
とりあえず公開します。
あまり需要はないかもしれませんが。。
スポンサーリンク
バッチファイル
次のファイルをTracのホーム配下のbatchディレクトに作成し、
タスクスケジューラに登録します。
trac_backup.bat
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 | @ECHO OFF REM ============================================== REM バックアップ設定 REM 環境に合わせて変更してください REM ============================================== REM バックアップ保持日数(世代数) SETDAYS=7 REM TRACホームのパスを設定 SETTRAC_HOME=C:\TracLight REM バックアップ先 SETBACKUP_HOME=C:\#backup\Trac REM ============================================== REM その他変数 REM ============================================== REM バッチ実行パス SETEXEC_HOME=%~dp0 REM 本日日付 SETYMD=%DATE:~-10,4%%DATE:~-5,2%%DATE:~-2,2% REM プロジェクトディレクトリ SETPRJ_DIR=%TRAC_HOME%\projects REM バックアップファイル出力先 SETBACK_DIR=%BACKUP_HOME%\%YMD%\projects REM ログ出力先 SETLOG_FILE=%EXEC_HOME%\log\trac_backup_%YMD%.log REM ----------------------------- REM 実行日付から REM 保持世代数を引いた日付を計算 REM ----------------------------- SETFROM_YMD= ECHO WScript.ECHO DateAdd("d", -%DAYS%, Date()) > tmp.vbs FOR/f"tokens=1-3 delims=/-"%%Ain('cscript //nologo tmp.vbs')DOSETFROM_YMD=%%A%%B%%C DELtmp.vbs REM ----------------------------- REM 処理開始 REM ----------------------------- ECHO %DATE% %TIME% [INFO] TracLightデータバックアップ開始 > %LOG_FILE% REM ----------------------------- REM 過去データ削除 REM ----------------------------- ECHO %DATE% %TIME% [INFO] 過去データ削除処理開始 >> %LOG_FILE% FOR/d%%iIN(%BACKUP_HOME%\*)DO( IF%%~niLEQ%FROM_YMD%( ECHO %DATE% %TIME% [INFO] 下記のデータを削除します。 >> %LOG_FILE% ECHO %DATE% %TIME% [INFO] %BACKUP_HOME%\%%~ni >> %LOG_FILE% RMDIR/s/q%%i ) ) ECHO %DATE% %TIME% [INFO] 過去データ削除処理完了 >> %LOG_FILE% REM ----------------------------- REM バックアップ REM ----------------------------- ECHO %DATE% %TIME% [INFO] バックアップ処理開始 >> %LOG_FILE% REM 既にバックアップがあれば削除 IFEXIST%BACK_DIR%( RMDIR/S/Q%BACK_DIR% ) REM フォルダ作成 MKDIR%BACK_DIR%\trac MKDIR%BACK_DIR%\svn REM Trac、SVNのホットコピー FOR/d%%iIN(%PRJ_DIR%\trac\*)DO( ECHO %DATE% %TIME% [INFO] Backup Project: %%~ni >> %LOG_FILE% CALL%TRAC_HOME%\bin\trac-admin.bat%PRJ_DIR%\trac\%%~nihotcopy%BACK_DIR%\trac\%%~ni CALLsvnadminhotcopy%PRJ_DIR%\svn\%%~ni%BACK_DIR%\svn\%%~ni ) REM その他フォルダ、ファイルのc ECHO COPY %PRJ_DIR%\trac.htdigest %BACK_DIR% >> %LOG_FILE% ECHO COPY %PRJ_DIR%\svnauthz %BACK_DIR% >> %LOG_FILE% ECHO XCOPY /E /C /H %PRJ_DIR%\maven %BACK_DIR% >> %LOG_FILE% ECHO XCOPY /E /C /H %PRJ_DIR%\report %BACK_DIR% >> %LOG_FILE% ECHO XCOPY /E /C /H %PRJ_DIR%\hudson %BACK_DIR% >> %LOG_FILE% COPY%PRJ_DIR%\trac.htdigest%BACK_DIR% COPY%PRJ_DIR%\svnauthz%BACK_DIR% XCOPY/E/C/I/Q/Y%PRJ_DIR%\maven%BACK_DIR%\ XCOPY/E/C/I/Q/Y%PRJ_DIR%\report%BACK_DIR%\ XCOPY/E/C/I/Q/Y%PRJ_DIR%\hudson%BACK_DIR%\ ECHO %DATE% %TIME% [INFO] %BACKUP_HOME%\%YMD%にコピーしました。 >> %LOG_FILE% ECHO %DATE% %TIME% [INFO] バックアップ処理終了 >> %LOG_FILE% REM ----------------------------- REM 終了処理 REM ----------------------------- ECHO %DATE% %TIME% [INFO] TracLightデータバックアップ終了 >> %LOG_FILE% pause REM exit /0 |
まとめ
とりあえずバックアップを取っておけば何かあった時に安心ですからね。
リストアなんかも試してみて、
特に問題なかったのでそのまま使えるかと思います。
ちなみに Trac Lightnin のバージョンは 3.2 です。
ではでは。
ディスカッション
コメント一覧
まだ、コメントがありません