2015年11月9日月曜日

WindowsServerBackup

REM wbadmin start backup
REM To create a one-time backup

@echo off
setlocal

set WSB_NOW=\\%computername%\ADBackup$\NOW

REM batファイル保存先を指定
set PGDIR=D:\task\ADBackup

REM ログファイル名の指定
set LOGDIR=D:\task\log
set DATE=%date%
set TIME=%time: =0%
set LOGFILE=%LOGDIR%\start_backup_%DATE:~2,2%%DATE:~5,2%%DATE:~8,2%_%TIME:~0,2%%TIME:~3,2%.log

echo ---------------------- >> %LOGFILE%
echo start_backup START >> %LOGFILE%
date /T >> %LOGFILE%
time /T >> %LOGFILE%
echo ---------------------- >> %LOGFILE%
echo. >> %LOGFILE%

REM
REM main
REM

REM バックアップイメージ ローテーション

pushd e:\ADBackup

echo ####%errorlevel%####
rem wbadmin get status >> %LOGFILE%
rem echo %errorlevel%
rem pause
rem if %errorlevel% == "0" (
rem echo 別のバックアップ操作または回復操作が進行中です #%errorlevel%# >> %LOGFILE%
rem exit /b 999
rem ) else (
rem if %errorlevel% == "-2" (
rem echo #別のバックアップ操作はありません#%errorlevel% >> %LOGFILE%
rem ) else (
rem echo #その他エラー#%errorlevel% >> %LOGFILE%
rem exit /b 998
rem )
rem )

IF EXIST OLD RD /S /Q OLD
IF EXIST NOW REN NOW OLD

REM システムバックアップの取得
REM -include で全ボリュームを指定(カンマ区切り)

MKDIR NOW
if errorlevel 1 (
echo #バックアップ先フォルダが作成できない#
)
wbadmin start backup -backuptarget:%WSB_NOW% -allCritical -quiet >> %LOGFILE%

if %errorlevel% == "0" (
echo バックアップ実行の成功 #%errorlevel%# >> %LOGFILE%
) else (
echo バックアップ実行エラー #%errorlevel%# >> %LOGFILE%

move e:\ADBackup\OLD\WindowsImageBackup e:\ADBackup\NOW

if %errorlevel% == "-1" (
echo #バックアップ コマンド構文誤り#%errorlevel%

) else if %errorlevel% == "-2" (
echo #アクセスが拒否されました#%errorlevel%

) else if %errorlevel% == "-3" (
echo #バックアップの保存場所の空き領域不足 #%errorlevel% >> %LOGFILE%
echo #ユーザーにより操作が取り消されました #%errorlevel% >> %LOGFILE%
echo 別のバックアップ操作または回復操作が進行中です #%errorlevel%# >> %LOGFILE%
) else (
echo #その他エラー#%errorlevel%
)
)

popd

REM wbadmin start backup -backuptarget:%WSB_NOW% -allCritical -quiet | FINDSTR /V % >> %LOGFILE%

echo.
echo. >> %LOGFILE%

echo ---------------------- >> %LOGFILE%
echo start_backup END >> %LOGFILE%
date /T >> %LOGFILE%
time /T >> %LOGFILE%
echo ---------------------- >> %LOGFILE%

pause
endlocal
exit 0