2015年11月5日木曜日

BACKUP


setlocal

@echo off

SET MAIL_SEND_CMD=ECHO

rem -----------------------------------------------------
rem CドライブのシステムバックアップをDドライブに保存する
rem バックアップ中のエラーに備え、2世代の履歴を管理
rem -----------------------------------------------------

SET BASE=E:\ADBackup

SET NOW=%BASE%\NOW
SET OLD=%BASE%\OLD

SET WBANOW=\\lenovo-pc\ADBackup\NOW
SET WBABASE=E:\aa

SET BACKUP_LOG_FILE=e:\systembackup.log

pushd E:\ADBackup
rem ****************************************************
rem 前々回のバックアップ削除
rem ****************************************************
echo # %date% %time% RMDIR /S /Q OLD
RMDIR /S /Q OLD
if errorlevel 1 (
%MAIL_SEND_CMD% "前回のバックアップの退避に失敗しました。(101)"
exit /b 101
)

rem ****************************************************
rem 前回取得のバックアップ退避
rem ****************************************************
echo # %date% %time% REN NOW OLD
REN NOW OLD
if errorlevel 1 (
%MAIL_SEND_CMD% "前回のバックアップの退避に失敗しました。(102)"
exit /b 111
)
popd

rem ****************************************************
rem バックアップ開始
rem ****************************************************

echo # %date% %time% バックアップ処理開始

echo # %date% %time% MKDIR NOW
MKDIR NOW
if errorlevel 1 (
%MAIL_SEND_CMD% "バックアップ先が見つかりません。(201)"
exit /b 201
)

echo # %date% %time% WBADMIN START BACKUP -allCritical -backupTarget:%WBANOW% -quiet
WBADMIN START BACKUP -allCritical -backupTarget:%WBANOW% -quiet > %WBABASE%\status2.txt

set STATUS_WBA=%ERRORLEVEL%

if "%STATUS_WBA%" =="1" (
%MAIL_SEND_CMD% "バックアップ先が見つかりません。(202)"
exit /b 202
) else if "%STATUS_WBA%" =="2" (
%MAIL_SEND_CMD% "CTL+Cでキャンセルされた。(203)"
exit /b 203
) else if "%STATUS_WBA%" =="3" (
%MAIL_SEND_CMD% "デイスク領域不足。(204)"
exit /b 204
)

echo # %date% %time% バックアップ処理完了

echo # %date% %time% status
cscript //nologo %WBABASE%\status.vbs

set STATUS_WBA=%ERRORLEVEL%

if "%STATUS_WBA%" =="1" (
%MAIL_SEND_CMD% "バックアップ成功"
exit /b 0
) else if "%STATUS_WBA%" =="0" (
%MAIL_SEND_CMD% "バックアップ失敗"
exit /b 206
)

exit /b 0

endlocal