NT Backup reloaded
I already mused about NT Backup before. Since then things started to go a bit sideways in terms of reliability of disk backups immediately followed by Exchange 2003 backup. For some reason media manager refused to recognise that disk backup has finished and Exchange dump was consistently failing. Poking around yielded the following update to the batch (set names are now really nice :-).
@echo off
Rem get date into a vairable so we can create good media name
rem for /F "usebackq delims=" %%i IN (`date /t`) DO set dt="%%ibackup media"
for /f "Tokens=1-4 Delims=/ " %%i in ('date /t') do set dt=%%i-%%j-%%k-%%l
for /f "Tokens=1" %%i in ('time /t') do set tm=-%%i
set tm=%tm::=-%
set dtt=%dt%%tm%
@echo ---------------------------------------- > report.txt
@echo Backup job started %dtt% >> report.txt
@echo ---------------------------------------- >> report.txt
Rem Set folder name containing backup log files
set fld=C:\Documents and Settings\Administrator\Local Settings\Application Data\Microsoft\Windows NT\NTBackup\data\
@echo net stop "Removable Storage" >> report.txt
net stop "Removable Storage" >> report.txt
@echo ---------------------------------------- >> report.txt
rem refresh media (is that why backup is failing?!)
@echo rsm.exe refresh /LF"HP C1537A SCSI Sequential Device" >> report.txt
start /wait rsm.exe refresh /LF"HP C1537A SCSI Sequential Device" >> report.txt
@echo ---------------------------------------- >> report.txt
sleep 30
Rem Perform Files backup
@echo C:\WINNT\system32\ntbackup.exe backup "@C:\admin\files.bks" /N "%dtt%" /D "File daily %dtt%" /v:yes /r:no /rs:no /hc:on /m normal /J "File daily %dtt%" /l:s /P "4mm DDS" /UM >> report.txt
@echo ---------------------------------------- >> report.txt
C:\WINNT\system32\ntbackup.exe backup "@C:\admin\files.bks" /N "%dtt%" /D "File daily %dtt%" /v:yes /r:no /rs:no /hc:on /m normal /J "File daily %dtt%" /l:s /P "4mm DDS" /UM
Rem This dir command will list all log files sorted by date in bare format
set fcmd=dir "%fld%*.log" /OD /A-D /B
Rem set command will set lastf variable to the last file in set, i.e. the latest one
for /F "tokens=* delims= " %%i in ('%fcmd%') do set lastf=%fld%%%i
type "%lastf%" >> report.txt
sleep 120
rem refresh media (is that why backup is failing?!)
@echo rsm.exe refresh /LF"HP C1537A SCSI Sequential Device" >> report.txt
start /wait rsm.exe refresh /LF"HP C1537A SCSI Sequential Device" >> report.txt
@echo ---------------------------------------- >> report.txt
sleep 120
Rem Perform Exchange backup
@echo ---------------------------------------- >> report.txt
@echo C:\WINNT\system32\ntbackup.exe backup "@C:\admin\exchange.bks" /A /T %dtt% /D "Exchange Daily %dtt%" /V:yes /R:yes /RS:no /HC:on /M normal /J "Exchange Daily %dtt%" /L:s >> report.txt
@echo ---------------------------------------- >> report.txt
C:\WINNT\system32\ntbackup.exe backup "@C:\admin\exchange.bks" /A /T %dtt% /D "Exchange Daily %dtt%" /V:yes /R:yes /RS:no /HC:on /M normal /J "Exchange Daily %dtt%" /L:s
Rem This dir command will list all log files sorted by date in bare format
set fcmd=dir "%fld%*.log" /OD /A-D /B
Rem set command will set lastf variable to the last file in set, i.e. the latest one
for /F "tokens=* delims= " %%i in ('%fcmd%') do set lastf=%fld%%%i
type "%lastf%" >> report.txt
sleep 120
rem eject media
@echo ---------------------------------------- >> report.txt
@echo rsm.exe eject /PF"%dtt% - 1" /astart >> report.txt
@echo ---------------------------------------- >> report.txt
start /wait rsm.exe eject /PF"%dtt% - 1" /astart >> report.txt
sleep 30
c:\admin\blat report.txt -t youraddress@yourdomain.com -s "Backup Report" -mime -server yoursmtpserver -f "backup@yourdomain.com" -q
Rem Cleanup
set fld=
set fcmd=
set lastf=
set dt=
set tm=
set dtt=