A few days after using flexbackup as a backup tool, then I've reached the next phase in  the procedure; Data Recovery. In other words, how'd you want to extract the data from the tape. Being absolutely vain in tape backup, I quickly typed 'ls' to view the content of the tape.  Well, I wish it was that easy.
But it was not that difficult either provided you understand some basic things about a tape. Note to self: a tape is nothing like a cd where you can easily mount and unmount. A tape is not a folder where it holds all the files and sub-folder. It is just a media that use sequential access in archiving data instead of random access method used in disk.
So I compare the requirement given to me with what Flexbackup can offers. Flexbackup has an extract feature(--extract) and it also can read(--flist) a file that has list of archives to extract. That will do it. But first I need to get the list. So using tar -itvf and mt command, I end up with this tape-list.sh:
#
#!/bin/bash
# This simple script is to create a list of files from the tape.
# This list will be use to extract - [eg. tape-extract ]
tape="/dev/nst0"
# by yoe Dec,2005
help_usage()
{
        echo "Usage: $0 filename "
        exit 0
}
if [ $# -ne 1 ]; then
#echo "Usage: $0 [filename] "
help_usage
exit
fi
if [ -f "$1" ]; then
    echo file exist!
    echo choose another filename
    exit 1
fi
tape=/dev/nst0
currentdir=`echo $PWD`
now=`date +'%Y%m%d'`
tempfile="temp.$now"
h=0
/bin/mt -f $tape rewind
/bin/mt -f $tape eod
lastcount=`/bin/mt -f $tape status |grep -i file |awk '{print $2}' |tr -d "number=" |tr -d ","`
echo "There are $lastcount blocks on the tape .."
echo
echo "Preparing to create filelist $2"
echo
/bin/mt -f $tape rewind
echo "Start creating filelist $2"
cd $currentdir
while [ $h -le $lastcount ]
do
    tar -itvf $tape | awk '$1 !~ /V/' | awk '{print $6}' | sed -e 's/\.\///g' | grep "." >> $tempfile
    h=$((h+1))
done
cat $tempfile | sort | uniq > $2
echo "Done creating filelist $2"
echo
#remove temporary file
#echo "Clearing temp files"
#echo
rm -rf  $currentdir/$tempfile
#echo DONE  
EOF
eg. #./tape-list list1.txt
so every files on the tape will be listed into a file called list1.txt. So, in list1.txt I just leave which ever file I need to restore and delete the unwanted. Then here's another script to extract the files listed in list1.txt called tape-extract.sh:
#!/bin/bash
# This simple script is for extracting files from backup.
# It requires a list that can be easily created using tape-list script
# by yoe Dec,2005
help_usage()
{
        echo "Usage: $0 filename "
        exit 0
}
currentdir=`echo $PWD`
logdir="/usr/local/test/log/"
now=`date +'%Y%m%d'`
logfile="tape-extract.log.$now"
flex_config="/etc/flexbackup.nst0"
if [ $# -ne 2 ]; then
help_usage
exit
fi
if [ -f "$2" ]; then
echo "extracting files into $currentdir"
h=0
    /bin/mt -f $tape rewind
    /bin/mt -f $tape eod
    #/bin/mt -f $tape bsf 1
    lastcount=`/bin/mt -f $tape status |grep -i file |awk '{print $2}' |tr -d "number=" |tr -d ","`
    echo "There are $lastcount blocks on the tape .."
    echo
    echo Preparing to extract
    /bin/mt -f $tape rewind
    echo "Start finding and extracting files"
    echo
    cd $currentdir
    while [ $h -le $lastcount ]
    do
        #/bin/mt -f $tape rewind
        #/bin/mt -f $tape fsf $h
        /usr/bin/flexbackup -c $flex_config -extract -flist $2 1>> $logdir$logfile 2>> $logdir$logfile
        #/usr/bin/flexbackup -extract -flist $1
        #/bin/mt -f $tape rewind
        #echo h: $h
        #echo 2m: $m
        h=$((h+1))
    done
    echo "Done extracting"
    echo "Create logfile named $logfile in log directory"
else
    echo "file does not exist!"
    echo
fi
EOF
eg. #./tape-extract list1.txt
Wednesday, July 18, 2007
Memory Lane - Tape Backup For Linux (Recovery)
Posted by
yoe
at
7/18/2007 10:42:00 PM
 
 
Subscribe to:
Post Comments (Atom)
3 comments:
This article very nice.It provide very good information. I Know about Linux recovery software that provide solution that can fix all data lost problem.
thanks for sharing the experience
Post a Comment