#! /bin/sh # XFS QA Test No. 064 # $Id: 1.1 $ # # test multilevel dump and restores with hardlinks # #----------------------------------------------------------------------- # Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved. # # This program is free software; you can redistribute it and/or modify it # under the terms of version 2 of the GNU General Public License as # published by the Free Software Foundation. # # This program is distributed in the hope that it would be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. # # Further, this software is distributed without any warranty that it is # free of the rightful claim of any third person regarding infringement # or the like. Any license provided herein, whether implied or # otherwise, applies only to this software file. Patent licenses, if # any, provided herein do not apply to combinations of this program with # other software, or any other product whatsoever. # # You should have received a copy of the GNU General Public License along # with this program; if not, write the Free Software Foundation, Inc., 59 # Temple Place - Suite 330, Boston MA 02111-1307, USA. # # Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy, # Mountain View, CA 94043, or: # # http://www.sgi.com # # For further information regarding this notice, see: # # http://oss.sgi.com/projects/GenInfo/SGIGPLNoticeExplan/ #----------------------------------------------------------------------- # # creator owner=tes@sagan.melbourne.sgi.com seq=`basename $0` echo "QA output created by $seq" here=`pwd` tmp=/tmp/$$ status=1 # failure is the default! trap "rm -f $tmp.*; exit \$status" 0 1 2 3 15 # get standard environment, filters and checks . ./common.rc . ./common.filter . ./common.dump _ls_size_filter() { # # Print size ($5) and fname ($9). # The size is significant since we add to the file as part # of a file change for the incremental. # # Filter out the housekeeping files of xfsrestore # $AWK_PROG 'NF == 9 { print $5, $9 }' |\ egrep -v 'dumpdir|housekeeping|dirattr|dirextattr|namreg|state|tree' } # real QA test starts here _create_dumpdir_hardlinks 9 echo "Do the incremental dumps" i=0 while [ $i -le 9 ]; do if [ $i -gt 0 ]; then _modify_level $i sleep 2 _stable_fs fi echo "********* level $i ***********" >>$seq.full date >>$seq.full find $SCRATCH_MNT -exec stat {} \; >$tmp.dates.$i if [ $i -gt 0 ]; then level_1=`expr $i - 1` diff -c $tmp.dates.$level_1 $tmp.dates.$i >>$seq.full else cat $tmp.dates.$i >>$seq.full fi dump_file=$tmp.df.level$i _do_dump_file -l $i i=`expr $i + 1` done echo "Listing of what files we start with:" ls -l $dump_dir | _ls_size_filter echo "Look at what files are contained in the inc. dump" i=0 while [ $i -le 9 ]; do echo "" echo "restoring from df.level$i" dump_file=$tmp.df.level$i _do_restore_toc i=`expr $i + 1` done echo "Do the cumulative restores" i=0 while [ $i -le 9 ]; do dump_file=$tmp.df.level$i echo "" echo "restoring from df.level$i" _do_restore_file_cum -l $i echo "ls -l restore_dir" ls -lR $restore_dir | _ls_size_filter | _check_quota_file i=`expr $i + 1` done # success, all done status=0 exit