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