FireBird 2.1.3.18185 SS
Windows 2003 Server SP2
есть скрипт автоматической архивации:
Код: Выделить всё
@echo off
set serverIP=127.0.0.1
set FBBinPath="C:\Program Files\Firebird\Firebird_2_1\bin\"
set DBFile="%serverIP%:D:\Hd_DB\hduni.FDB"
set backupPath=D:\BackUpDB\
set tmpRestore="%backupPath%tmpRestored.fdb"
set logFile="%backupPath%fiberBackup1.log"
for /f "tokens=1-3 delims=./" %%a in ('date /t') do set _date=%%c%%b%%a
if "%_date:~4,1%"==" " (set _date=%_date:~0,4%%_date:~5,4%)
for /f "tokens=1,2 delims=:" %%a in ('time /t') do set _time=%%a%%b
if "%_time:~1,1%"==":" set t=0%_time%
set backupName=fbhdi%_date%%_time%.fbk
set arhiveName=%backupName%.rar
for /l %%a in (0,1,2) do echo .>>%logFile%
echo ________________________________________________________________________>>%logFile%
date /t>>%logFile%
time /t>>%logFile%
echo .>>%logFile%
rem Backup ===========================================
set cmdMessage=echo Starting backup...
%cmdMessage% & %cmdMessage%>>%logFile%
%FBBinPath%gbak -b -user sysdba -password ****** %DBFile% %backupPath%%backupName% 2>>%logFile%
set cmdError=echo An Error occured while backup. Alarm!
set cmdOK=echo Backup OK.
if not %errorLevel%==0 (%cmdError% & %cmdError%>>%logFile%) else (%cmdOK% & %cmdOK%>>%logFile%)
pause
rem Restore Test======================================
set msg1=echo Starting restore test...
%msg1% & %msg1%>>%logFile%
%FBBinPath%gbak -c -user sysdba -password ****** %backupPath%%backupName% %serverIP%:%tmpRestore% 2>>%logFile%
set cmdError=echo An Error occured while restore. Alarm!
set cmdOK=echo Restore OK.
if not %errorLevel%==0 (%cmdError% & %cmdError%>>%logFile%) else (%cmdOK% & %cmdOK%>>%logFile%)
if exist %tmpRestore% (del %tmpRestore%)
rem GFIX ======================================
set cmdMessage=echo Starting GFIX...
%cmdMessage% & %cmdMessage%>>%logFile%
%FBBinPath%gfix -sweep -user sysdba -password ****** %DBFile% 2>>%logFile%
set cmdError=echo An Error occured while Sweep. Alarm!
set cmdOK=echo Sweep OK.
if not %errorLevel%==0 (%cmdError% & %cmdError%>>%logFile%) else (%cmdOK% & %cmdOK%>>%logFile%)
rem ----------------------------------------------------------------------------------------------------------------
cd d:\
D:\BackUpDB\FB\rar.exe a -df -ep -ep1 -k -rr %backupPath%%arhiveName% %backupPath%%backupName% 2>>%logFile%
rem if exist %backupPath%%backupName% (del %backupPath%%backupName%)
%errorLevel% всегда возвращает 0
т.е. если я например после BackUp'а принудительно испорчу этот файл,
то тестовое Restore мне в лог напишет ошибку, но все равно далее
вываливает %errorLevel%=0
подскажите пожалуйста где ошибка?