Trac Lightning 用のSubversion世代バックアップバッチを作ってみた
おはようございます。
今日は Trac Lightning のプロジェクトデータと
Subversion の データを世代バックアップするバッチを作ったので
とりあえず公開します。
あまり需要はないかもしれませんが。。
スポンサーリンク
バッチファイル
次のファイルをTracのホーム配下のbatchディレクトに作成し、
タスクスケジューラに登録します。
trac_backup.bat
@ECHO OFF REM ============================================== REM バックアップ設定 REM 環境に合わせて変更してください REM ============================================== REM バックアップ保持日数(世代数) SET DAYS=7 REM TRACホームのパスを設定 SET TRAC_HOME=C:\TracLight REM バックアップ先 SET BACKUP_HOME=C:\#backup\Trac REM ============================================== REM その他変数 REM ============================================== REM バッチ実行パス SET EXEC_HOME=%~dp0 REM 本日日付 SET YMD=%DATE:~-10,4%%DATE:~-5,2%%DATE:~-2,2% REM プロジェクトディレクトリ SET PRJ_DIR=%TRAC_HOME%\projects REM バックアップファイル出力先 SET BACK_DIR=%BACKUP_HOME%\%YMD%\projects REM ログ出力先 SET LOG_FILE=%EXEC_HOME%\log\trac_backup_%YMD%.log REM ----------------------------- REM 実行日付から REM 保持世代数を引いた日付を計算 REM ----------------------------- SET FROM_YMD= ECHO WScript.ECHO DateAdd("d", -%DAYS%, Date()) > tmp.vbs FOR /f "tokens=1-3 delims=/-" %%A in ('cscript //nologo tmp.vbs') DO SET FROM_YMD=%%A%%B%%C DEL tmp.vbs REM ----------------------------- REM 処理開始 REM ----------------------------- ECHO %DATE% %TIME% [INFO] TracLightデータバックアップ開始 > %LOG_FILE% REM ----------------------------- REM 過去データ削除 REM ----------------------------- ECHO %DATE% %TIME% [INFO] 過去データ削除処理開始 >> %LOG_FILE% FOR /d %%i IN (%BACKUP_HOME%\*) DO ( IF %%~ni LEQ %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 既にバックアップがあれば削除 IF EXIST %BACK_DIR% ( RMDIR /S /Q %BACK_DIR% ) REM フォルダ作成 MKDIR %BACK_DIR%\trac MKDIR %BACK_DIR%\svn REM Trac、SVNのホットコピー FOR /d %%i IN (%PRJ_DIR%\trac\*) DO ( ECHO %DATE% %TIME% [INFO] Backup Project: %%~ni >> %LOG_FILE% CALL %TRAC_HOME%\bin\trac-admin.bat %PRJ_DIR%\trac\%%~ni hotcopy %BACK_DIR%\trac\%%~ni CALL svnadmin hotcopy %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 です。
ではでは。
ディスカッション
コメント一覧
まだ、コメントがありません