This is a multi-part message in MIME format.
------=_NextPart_000_0059_01C2ED60.080B5940
Content-Type: text/plain;
charset="iso-8859-1"
Content-Transfer-Encoding: 7bit
if you've used vault before, this is very similar to their "recovery report"
You will need to modify it slightly, but it should give you a report of what
you are looking for.
You should see what I'm talking about with regards to changes...
Let me know if you need help
David
<><><><><><><><><><><><><><><><><><><><>
David A. Chapa
DataStaff, Inc.
312-683-1144
http://www.BackupScripts.com
Co-Author of
Implementing Backup and Recovery:
The Readiness Guide for the Enterprise
published by John Wiley and Sons
A Veritas Solution Series Publication
ISBN:0471227145
---------------------------------------
-----Original Message-----
From: veritas-bu-admin AT mailman.eng.auburn DOT edu
[mailto:veritas-bu-admin AT mailman.eng.auburn DOT edu]On Behalf Of Schreiber,
Kristyn
Sent: Tuesday, March 18, 2003 2:33 PM
To: veritas-bu AT mailman.eng.auburn DOT edu
Subject: [Veritas-bu] (no subject)
Hello everybody,
We are in the process of decommissioning a Sun master server running version
3.2. We are currently using an HP master server running 3.4. The problem
is, is we still need to be able to retrieve data if needed from the old
environment using the new environment. We thought if we had a script that
will generate a report that defines which tapes a server backed up to on a
specific date we will be able to shut down this old master.
Any scripts or suggestions...
Thank you!!
Kristyn
_______________________________________________
Veritas-bu maillist - Veritas-bu AT mailman.eng.auburn DOT edu
http://mailman.eng.auburn.edu/mailman/listinfo/veritas-bu
------=_NextPart_000_0059_01C2ED60.080B5940
Content-Type: application/octet-stream;
name="dupimagechk.sh"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: attachment;
filename="dupimagechk.sh"
#!/bin/ksh=0A=
# -- Environment --=0A=
Hostname=3D`/bin/uname -n`=0A=
Me=3D`basename $0`=0A=
COPYNUM=3D1=0A=
CREATEDATE=3D`date +%m%d%y_%H%S%M`=0A=
WORKCLASS=3D/tmp/workclass=0A=
TOTALKB=3D0=0A=
REPORT=3D/tmp/dupimage_report=0A=
RECOVRYRPT=3D/tmp/RECOVRYRPT=0A=
DUPSESSION=3D$1=0A=
DUPPARAM=3D$2=0A=
CLIENT=3D""=0A=
IMAGEID=3D""=0A=
BPDBM=3D/usr/openv/netbackup/bin/bpdbm=0A=
DUPCRFILE=3D/tmp/dupcreate=0A=
VAULT=3D/usr/openv/netbackup/vault=0A=
VAULTDIR=3D`grep ^bpvault_dir $VAULT/production/$DUPPARAM| awk '{print =
$2}'`=0A=
VAULTNAME=3D`grep ^vault $VAULT/production/$DUPPARAM|awk '{print
$2}'`=0A=
DUPSESS=3DDUP$DUPSESSION=0A=
DUPMEDIA=3D/tmp/dupmediarecovery=0A=
CURRCLNT=3D"xNONAMEx"=0A=
RECOVER_FORMAT=3D/tmp/tempworkfile=0A=
REPORTDIR=3D`grep ^report_dir $VAULT/production/$DUPPARAM|awk awk =
'{print $2}'`=0A=
RECOVER_REPORT=3D$REPORTDIR/RECOVER_REPORT_$DUPSESS.$CREATEDATE.txt=0A=
IMGLISTOUTP=3D/tmp/bpimagelist.outp=0A=
# ---FUNCTIONS---=0A=
#=0A=
# --Clean Up Logs--=0A=
cleanuplogs()=0A=
{=0A=
if [ -f $DUPMEDIA.$DUPSESS ];then=0A=
rm $DUPMEDIA.$DUPSESS=0A=
fi=0A=
if [ -f $DUPCRFILE ];then=0A=
rm $DUPCRFILE=0A=
fi=0A=
if [ -f $REPORT ];then=0A=
rm $REPORT=0A=
fi=0A=
if [ -f $IMGLISTOUTP ];then=0A=
rm $IMGLISTOUTP=0A=
fi=0A=
if [ -f $WORKCLASS.* ];then=0A=
rm $WORKCLASS.*=0A=
fi=0A=
if [ -f $RECOVER_REPORT ];then=0A=
rm $RECOVER_REPORT=0A=
fi=0A=
if [ -f /tmp/$DUPSESS.mediafound ];then=0A=
rm /tmp/$DUPSESS.mediafound=0A=
fi=0A=
}=0A=
# --End Clean Up Logs--=0A=
# --Usage---=0A=
usage()=0A=
{=0A=
echo ""=0A=
echo "Usage:"=0A=
echo ""=0A=
echo "dupimageck.sh <DupSessionNumber> <dup_param_file>"=0A=
echo ""=0A=
echo "ex."=0A=
echo ""=0A=
echo "dupimageck.sh 92 dup_param_V100_full"=0A=
echo ""=0A=
echo ""=0A=
echo ""=0A=
echo ""=0A=
echo ""=0A=
echo "Exiting"=0A=
exit 1=0A=
}=0A=
# --End Usage--=0A=
#=0A=
# --Find Backup Images--=0A=
#=0A=
findbid()=0A=
{=0A=
sort -k 1,1 $VAULTDIR/$DUPSESS/dup.preview.out | awk '{print $5}' | =
while read bid=0A=
do=0A=
bpimagelist -backupid $bid >> $IMGLISTOUTP=0A=
done=0A=
}=0A=
# --End Find Backup Images--=0A=
#=0A=
# --Workclass Function--=0A=
#=0A=
workclass()=0A=
{=0A=
cat $IMGLISTOUTP | =0A=
while read line=0A=
do=0A=
if [ `echo $line | awk '{print $1}'` =3D "IMAGE" ];then=0A=
CLIENT=3D`echo $line | awk '{print $2}'` # Client Name=0A=
DATE1=3D`echo $line | awk '{print $3}'` # Date1=0A=
DATE2=3D`echo $line| awk '{print $4}'` # Date2=0A=
VERSION=3D`echo $line | awk '{print $5}'` # Image Version
level=0A=
IMAGEID=3D`echo $line| awk '{print $6}'` # Backup ID=0A=
CLASS=3D`echo $line | awk '{print $7}'` # Class Name=0A=
CLASSTYPE=3D`echo $line | awk '{print $8}'` # Class Type=0A=
=0A=
case $CLASSTYPE in =0A=
0) UCLASS=3D"Standard";;=0A=
1) UCLASS=3D"UNDEF";;=0A=
2) UCLASS=3D"UNDEF";;=0A=
3) UCLASS=3D"Apollo-wbak";;=0A=
4) UCLASS=3D"Oracle";;=0A=
5) UCLASS=3D"UNDEF";;=0A=
6) UCLASS=3D"Oracle";;=0A=
7) UCLASS=3D"Sybase";;=0A=
8) UCLASS=3D"UNDEF";;=0A=
9) UCLASS=3D"UNDEF";;=0A=
10) UCLASS=3D"Netware";;=0A=
11) UCLASS=3D"DataTools-SQL-BackTrack";;=0A=
12) UCLASS=3D"Auspex-FastBackup";;=0A=
13) UCLASS=3D"MS-Windows-NT";;=0A=
14) UCLASS=3D"OS/2";;=0A=
15) UCLASS=3D"MS-SQL-Server";;=0A=
16) UCLASS=3D"MS-Exchange-Server";;=0A=
17) UCLASS=3D"SAP";;=0A=
18) UCLASS=3D"DB2";;=0A=
19) UCLASS=3D"NDMP";;=0A=
20) UCLASS=3D"FlashBackup";;=0A=
21) UCLASS=3D"Split-Mirror";;=0A=
esac=0A=
# Use UCLASS for the
User Readable Format=0A=
PROXYCLNT=3D`echo $line | awk '{print $9}'` # Proxy
Client=0A=
CREATOR=3D`echo $line | awk '{print $10}'` # Creator=0A=
SCHED=3D`echo $line | awk '{print $11}'` # Schedule Label=0A=
SCHEDTYPE=3D`echo $line | awk '{print $12}'` # Schedule
Type=0A=
RL=3D`echo $line | awk '{print $13}'` # Retention Level=0A=
BACKUPTIME=3D`echo $line | awk '{print $14}'` # Backup Time=0A=
ELAPSETIME=3D`echo $line | awk '{print $15}'` # Elapse Backup Time=0A=
EXPIR_UTIME=3D`echo $line | awk '{print $16}'` # Expiration date of =
first copy to expire. =0A=
# 0 denotes image
inprogress or failed=0A=
EXPIRATION=3D`$BPDBM -ctime $EXPIR_UTIME | awk -F=3D '{print =
$2}'|awk '{print $2, $3, $5}'`=0A=
# EXPIRATION is a User
Readable Format=0A=
COMPRESSION=3D`echo $line | awk '{print $17}'` # Compression; 1 =
(yes) 0 (no)=0A=
ENCRYPT=3D`echo $line | awk '{print $18}'` # Encryption; 1(yes) or
=
0 (no)=0A=
KBYTES1=3D`echo $line | awk '{print $19}'` # KBs Written=0A=
NUMFILES=3D`echo $line | awk '{print $20}'` # Number of
Files=0A=
COPIES=3D`echo $line | awk '{print $21}'` # Number of Copies=0A=
NUMFRAGS=3D`echo $line | awk '{print $22}'` # Number of
Fragments=0A=
IMGFILECOMP=3D`echo $line | awk '{print $23}'` # Image File =
Compressed 1 (yes) 0 (no)=0A=
IMGFILE=3D`echo $line | awk '{print $24}'` # Image File Name=0A=
SOFTVER=3D`echo $line | awk '{print $25}'` # Software Version=0A=
NAME1=3D`echo $line | awk '{print $26}'` # Name1=0A=
BPIMGLSTOPTIONS=3D`echo $line | awk '{print $27}'` # bpimagelist =
options 1 (yes) 0 (no)=0A=
PRICOPYNUM=3D`echo $line | awk '{print $28}'` # Primary Copy
Number=0A=
IMGTYPE=3D`echo $line | awk '{print $29}'` # Image Type =0A=
TIRINFO=3D`echo $line | awk '{print $30}'` # TIR Recovery Info=0A=
TIREXPIR=3D`echo $line | awk '{print $31}'` # TIR Recovery =
Expiration=0A=
KEYWORDS=3D`echo $line | awk '{print $32}'` # Keywords=0A=
MPX=3D`echo $line | awk '{print $33}'` # Multiplexing 1 (yes)
0 =
(no)=0A=
EXTSECURITYINFO=3D`echo $line | awk '{print $34}'` # Extended =
Security Information=0A=
INDFILRESTFRMRAW=3D`echo $line | awk '{print $35}'` # Independent =
File Restore from RAW=0A=
IMGDUMPLVL=3D`echo $line | awk '{print $36}'` # Image Dump Level=0A=
FILESYSONLY=3D`echo $line | awk '{print $37}'` # File System Only=0A=
PREVBLOCKINCRTIME=3D`echo $line | awk '{print $38}'` # Previous =
Block Incr Time=0A=
BLOCKINCRFULLTIME=3D`echo $line | awk '{print $39}'` # Block Incr =
Full Time=0A=
OBJDESC=3D`echo $line | awk '{print $40}'` # Object Description=0A=
REQID=3D`echo $line | awk '{print $41}'` # Request ID=0A=
BACKSTAT=3D`echo $line | awk '{print $42}'` # Backup
Status=0A=
=0A=
if [ "$CURRCLNT" =3D "$CLIENT" ];then=0A=
NOECHO=3D0=0A=
else=0A=
NOECHO=3D1=0A=
CURRCLNT=3D$CLIENT=0A=
echo "$CLIENT, $SCHED" >> $WORKCLASS.$CLASS=0A=
fi=0A=
elif [ `echo $line | awk '{print $1}'` =3D "FRAG" ] # Start looking =
at Line 2 - n+1 FRAG lines=0A=
then=0A=
COPYNUM=3D`echo $line | awk '{print $2}'` # Copy number of this =
Fragment=0A=
FRAGNUM=3D`echo $line | awk '{print $3}'` # Fragment Number, or =
-1 for a TIR Fragment=0A=
KBYTES=3D`echo $line | awk '{print $4}'` # Size of the Fragment =
in KB=0A=
INTVAL1=3D`echo $line | awk '{print $5}'` # Undocumented=0A=
MTYPE=3D`echo $line | awk '{print $6}'` # Media Type (2 for =
removable; 0 for disk)=0A=
DENSITY=3D`echo $line | awk '{print $7}'` # Density (removable =
only)=0A=
=0A=
case $DENSITY in =0A=
0) UDEN=3D"qscsi";;=0A=
1) UDEN=3D"8mm (hc8mm)";;=0A=
2) UDEN=3D"800-openreel";;=0A=
3) UDEN=3D"1600-openreel";;=0A=
4) UDEN=3D"3200-openreel";;=0A=
5) UDEN=3D"6250-openreel";;=0A=
6) UDEN=3D"hcart";;=0A=
7) UDEN=3D"8mm";;=0A=
8) UDEN=3D"t120";;=0A=
9) UDEN=3D"odiskwm";; =0A=
10) UDEN=3D"odiskwo";;=0A=
11) UDEN=3D"8mm";;=0A=
12) UDEN=3D"4mm";;=0A=
13) UDEN=3D"dlt";;=0A=
14) UDEN=3D"hcart2";;=0A=
15) UDEN=3D"dlt2";;=0A=
16) UDEN=3D"8mm";;=0A=
17) UDEN=3D"8mm2";;=0A=
18) UDEN=3D"d2";;=0A=
19) UDEN=3D"dtf";;=0A=
20) UDEN=3D"hcart3";;=0A=
21) UDEN=3D"dlt3";;=0A=
22) UDEN=3D"disk";;=0A=
esac=0A=
# This Density Chart
may be incorrect=0A=
=0A=
FNUM=3D`echo $line | awk '{print $8}'` # File Number, this is =
the n-th =0A=
# backup on this medium
(rem only)=0A=
MEDIAID=3D`echo $line | awk '{print $9}'` # MediaID or Absolute =
Path where image is stored=0A=
MEDIASRVR=3D`echo $line | awk '{print $10}'` # Media Server who =
owns this image=0A=
BLOCKSIZE=3D`echo $line | awk '{print $11}'` # Num KB per block =
for this medium=0A=
OFFSETVAL=3D`echo $line | awk '{print $12}'` # Offset=0A=
CREATEDATE=3D`echo $line | awk '{print $13}'` # Media Date and =
Time this was allocated (utime)=0A=
# The assumption for
duplications is that the allocated=0A=
# time is the creation
time=0A=
DUPCREATE=3D`$BPDBM -ctime $CREATEDATE | awk -F=3D '{print $2}' | =
awk '{print $2, $3, $5}'`=0A=
# Use DUPCREATE for a
User Readable Format=0A=
DWO=3D`echo $line | awk '{print $14}'` # Device Written On,
very =
handy=0A=
INTVAL2=3D`echo $line | awk '{print $15}'` #
Undocumented=0A=
INTVAL3=3D`echo $line | awk '{print $16}'` #
Undocumented=0A=
FRAGEXPIR=3D`echo $line | awk '{print $17}'` # Expir of copy, =
applies only when FRAG num is 1=0A=
MPX=3D`echo $line | awk '{print $18}'` # Indicates whether
this =
copy is MPX'd =0A=
# 1-yes, 0-no;only on
FRAG 1=0A=
=0A=
echo "$MEDIAID, $UDEN, $DUPCREATE, $COPYNUM" >> $WORKCLASS.$CLASS=0A=
fi=0A=
# done=0A=
done=0A=
}=0A=
# --End Workclass---=0A=
#=0A=
# --Final Recovery Report--=0A=
#=0A=
recoveryrpt()=0A=
{=0A=
cp /dev/null $RECOVER_FORMAT=0A=
printf "%5sRecovery Report for Vault Database: ($VAULTNAME)" >> =
$RECOVER_REPORT=0A=
echo "" >> $RECOVER_REPORT=0A=
printf "%5sTo recovery all classes from date $START to date $END" >> =
$RECOVER_REPORT=0A=
echo "" >> $RECOVER_REPORT=0A=
for i in `ls $WORKCLASS.*`=0A=
do=0A=
CLASSNAME=3D`echo $i | awk -F. '{print $2}'`=0A=
printf "%5sClass: $CLASSNAME\n" >> $RECOVER_REPORT=0A=
echo $i=0A=
cat $i | while read line =0A=
do=0A=
if [ `echo $line | awk '{print NF}'` -eq 2 ];then=0A=
CLNTNAME=3D`echo $line |awk -F, '{print $1}'` =0A=
SCHEDNAME=3D`echo $line | awk -F, '{print $2}'`=0A=
elif [ `echo $line | awk '{print NF}'` -eq 6 ];then=0A=
MEDIA=3D`echo $line | awk -F, '{print $1}'`=0A=
DENSITY=3D`echo $line | awk -F, '{print $2}'`=0A=
DATE=3D`echo $line | awk -F, '{print $3}'`=0A=
COPY=3D`echo $line | awk -F, '{print $4}'`=0A=
printf "%7sClient: $CLNTNAME%7sSched: $SCHEDNAME%3sMedia: =
$MEDIA%2sDensity: $DENSITY%3sDate: $DATE%3sCopy: =
$COPY\n">>$RECOVER_FORMAT=0A=
fi=0A=
cat $RECOVER_FORMAT | sort -u >> $RECOVER_REPORT=0A=
cp /dev/null $RECOVER_FORMAT=0A=
done=0A=
echo "">> $RECOVER_REPORT=0A=
done=0A=
}=0A=
# --End Final Recovery Report---=0A=
#=0A=
# ---End FUNCTIONS---=0A=
#=0A=
# --Begin Main Script---=0A=
if [ $# !=3D 2 ];then=0A=
usage=0A=
fi=0A=
#=0A=
if [ ! -f $VAULTDIR/$DUPSESS/dup.preview.out ];then=0A=
echo "FATAL ERROR: No $VAULTDIR/$DUPSESS/dup.preview.out file was =
found"=0A=
echo "Exiting"=0A=
exit 2=0A=
fi=0A=
START=3D`sort -k 1,1 $VAULTDIR/$DUPSESS/dup.preview.out | head -1 | awk =
'{print $1}'`=0A=
END=3D`sort -k 1,1 $VAULTDIR/$DUPSESS/dup.preview.out | tail -1 | awk =
'{print $1}'`=0A=
#=0A=
# Call Functions=0A=
cleanuplogs=0A=
findbid=0A=
workclass=0A=
recoveryrpt=0A=
# Script Done=0A=
exit 0=0A=
------=_NextPart_000_0059_01C2ED60.080B5940--
|