From: Tim Shimmin Date: Fri, 30 Nov 2001 03:24:22 +0000 (+0000) Subject: change to new incremental syntax X-Git-Tag: v1.1.0~1185 X-Git-Url: http://git.apps.os.sepia.ceph.com/?p=xfstests-dev.git;a=commitdiff_plain;h=be7aadc67e13e00cb5670792dbcf3fd6fdb20347 change to new incremental syntax --- diff --git a/024 b/024 index 3ee9a0bf..7fc7b65a 100755 --- a/024 +++ b/024 @@ -61,7 +61,7 @@ _do_dump _append_dumpdir_fill src/bstat $SCRATCH_MNT >>$here/$seq.full _erase_hard -_do_dump_incremental +_do_dump -l 1 _do_restore _diff_compare diff --git a/024.out b/024.out index 537f95fa..56140bfd 100644 --- a/024.out +++ b/024.out @@ -4,7 +4,7 @@ Creating directory system to dump using src/fill. Setup .................................... Erasing tape Dumping to tape... -xfsdump -l0 -f TAPE_DEV -M stress_tape_media -L stress_024 SCRATCH_MNT +xfsdump -f TAPE_DEV -M stress_tape_media -L stress_024 SCRATCH_MNT xfsdump: level 0 dump of HOSTNAME:SCRATCH_MNT xfsdump: dump date: DATE xfsdump: session id: ID @@ -38,7 +38,7 @@ xfsdump: dump size (non-dir files) : NUM bytes xfsdump: dump complete: SECS seconds elapsed xfsdump: Dump Status: SUCCESS Erasing tape -Dumping incrementally to tape... +Dumping to tape... xfsdump -l1 -f TAPE_DEV -M stress_tape_media -L stress_024 SCRATCH_MNT xfsdump: level 1 incremental dump of HOSTNAME:SCRATCH_MNT based on level 0 dump begun DATE xfsdump: dump date: DATE diff --git a/035.out b/035.out index 64a654e8..2bbfea25 100644 --- a/035.out +++ b/035.out @@ -4,7 +4,7 @@ Creating directory system to dump using src/fill. Setup .................................... Erasing tape Dumping to tape... -xfsdump -l0 -f TAPE_DEV -M stress_tape_media -L 035.1 SCRATCH_MNT +xfsdump -f TAPE_DEV -M stress_tape_media -L 035.1 SCRATCH_MNT xfsdump: level 0 dump of HOSTNAME:SCRATCH_MNT xfsdump: dump date: DATE xfsdump: session id: ID @@ -40,7 +40,7 @@ xfsdump: Dump Status: SUCCESS Creating directory system to dump using src/fill. Setup .... Dumping to tape... -xfsdump -l0 -f TAPE_DEV -M stress_tape_media -L 035.2 SCRATCH_MNT +xfsdump -f TAPE_DEV -M stress_tape_media -L 035.2 SCRATCH_MNT xfsdump: level 0 dump of HOSTNAME:SCRATCH_MNT xfsdump: dump date: DATE xfsdump: session id: ID diff --git a/038.out b/038.out index a4669a12..918ec337 100644 --- a/038.out +++ b/038.out @@ -3,7 +3,7 @@ Creating directory system to dump using src/fill. Setup .................................... Erasing tape Dumping to tape... -xfsdump -l0 -f TAPE_DEV -M stress_tape_media -L stress_038 SCRATCH_MNT +xfsdump -f TAPE_DEV -M stress_tape_media -L stress_038 SCRATCH_MNT xfsdump: level 0 dump of HOSTNAME:SCRATCH_MNT xfsdump: dump date: DATE xfsdump: session id: ID diff --git a/039.out b/039.out index f39651e4..09e8cb6b 100644 --- a/039.out +++ b/039.out @@ -3,7 +3,7 @@ Creating directory system to dump using src/fill. Setup .................................... Erasing tape Dumping to tape... -xfsdump -o -F -l0 -f TAPE_DEV -M stress_tape_media -L stress_039 SCRATCH_MNT +xfsdump -o -F -f TAPE_DEV -M stress_tape_media -L stress_039 SCRATCH_MNT xfsdump: level 0 dump of HOSTNAME:SCRATCH_MNT xfsdump: dump date: DATE xfsdump: session id: ID diff --git a/055.out b/055.out index 053ff221..7ddee1fe 100644 --- a/055.out +++ b/055.out @@ -3,7 +3,7 @@ Creating directory system to dump using src/fill. Setup .................................... Erasing tape Dumping to tape... -xfsdump -o -F -l0 -f TAPE_DEV -M stress_tape_media -L stress_055 SCRATCH_MNT +xfsdump -o -F -f TAPE_DEV -M stress_tape_media -L stress_055 SCRATCH_MNT xfsdump: level 0 dump of HOSTNAME:SCRATCH_MNT xfsdump: dump date: DATE xfsdump: session id: ID diff --git a/064 b/064 new file mode 100755 index 00000000..8f0670f5 --- /dev/null +++ b/064 @@ -0,0 +1,113 @@ +#! /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 + 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 + i=`expr $i + 1` +done + +# success, all done +status=0 +exit diff --git a/064.out b/064.out new file mode 100644 index 00000000..9437994e --- /dev/null +++ b/064.out @@ -0,0 +1,1474 @@ +QA output created by 064 +Creating directory system of hardlinks to incrementally dump. +creating hardlink file1_h1 to file1 +creating hardlink file1_h2 to file1 +creating hardlink file1_h3 to file1 +creating hardlink file1_h4 to file1 +creating hardlink file1_h5 to file1 +creating hardlink file2_h1 to file2 +creating hardlink file2_h2 to file2 +creating hardlink file2_h3 to file2 +creating hardlink file2_h4 to file2 +creating hardlink file2_h5 to file2 +creating hardlink file3_h1 to file3 +creating hardlink file3_h2 to file3 +creating hardlink file3_h3 to file3 +creating hardlink file3_h4 to file3 +creating hardlink file3_h5 to file3 +creating hardlink file4_h1 to file4 +creating hardlink file4_h2 to file4 +creating hardlink file4_h3 to file4 +creating hardlink file4_h4 to file4 +creating hardlink file4_h5 to file4 +creating hardlink file5_h1 to file5 +creating hardlink file5_h2 to file5 +creating hardlink file5_h3 to file5 +creating hardlink file5_h4 to file5 +creating hardlink file5_h5 to file5 +creating hardlink file6_h1 to file6 +creating hardlink file6_h2 to file6 +creating hardlink file6_h3 to file6 +creating hardlink file6_h4 to file6 +creating hardlink file6_h5 to file6 +creating hardlink file7_h1 to file7 +creating hardlink file7_h2 to file7 +creating hardlink file7_h3 to file7 +creating hardlink file7_h4 to file7 +creating hardlink file7_h5 to file7 +creating hardlink file8_h1 to file8 +creating hardlink file8_h2 to file8 +creating hardlink file8_h3 to file8 +creating hardlink file8_h4 to file8 +creating hardlink file8_h5 to file8 +creating hardlink file9_h1 to file9 +creating hardlink file9_h2 to file9 +creating hardlink file9_h3 to file9 +creating hardlink file9_h4 to file9 +creating hardlink file9_h5 to file9 +Do the incremental dumps +Dumping to file... +xfsdump -l0 -f DUMP_FILE -M stress_tape_media -L stress_064 SCRATCH_MNT +xfsdump: level 0 dump of HOSTNAME:SCRATCH_MNT +xfsdump: dump date: DATE +xfsdump: session id: ID +xfsdump: session label: "stress_064" +xfsdump: ino map phase 1: skipping (no subtrees specified) +xfsdump: ino map phase 2: constructing initial dump list +xfsdump: ino map phase 3: skipping (no pruning necessary) +xfsdump: ino map phase 4: skipping (size estimated in phase 2) +xfsdump: ino map phase 5: skipping (only one dump stream) +xfsdump: ino map construction complete +xfsdump: estimated dump size: NUM bytes +xfsdump: /var/xfsdump/inventory created +xfsdump: creating dump session media file 0 (media 0, file 0) +xfsdump: dumping ino map +xfsdump: dumping directories +xfsdump: dumping non-directory files +xfsdump: ending media file +xfsdump: media file size NUM bytes +xfsdump: dump size (non-dir files) : NUM bytes +xfsdump: dump complete: SECS seconds elapsed +xfsdump: Dump Status: SUCCESS +Dumping to file... +xfsdump -l1 -f DUMP_FILE -M stress_tape_media -L stress_064 SCRATCH_MNT +xfsdump: level 1 incremental dump of HOSTNAME:SCRATCH_MNT based on level 0 dump begun DATE +xfsdump: dump date: DATE +xfsdump: session id: ID +xfsdump: session label: "stress_064" +xfsdump: ino map phase 1: skipping (no subtrees specified) +xfsdump: ino map phase 2: constructing initial dump list +xfsdump: ino map phase 3: pruning unneeded subtrees +xfsdump: ino map phase 4: estimating dump size +xfsdump: ino map phase 5: skipping (only one dump stream) +xfsdump: ino map construction complete +xfsdump: estimated dump size: NUM bytes +xfsdump: creating dump session media file 0 (media 0, file 0) +xfsdump: dumping ino map +xfsdump: dumping directories +xfsdump: dumping non-directory files +xfsdump: ending media file +xfsdump: media file size NUM bytes +xfsdump: dump size (non-dir files) : NUM bytes +xfsdump: dump complete: SECS seconds elapsed +xfsdump: Dump Status: SUCCESS +Dumping to file... +xfsdump -l2 -f DUMP_FILE -M stress_tape_media -L stress_064 SCRATCH_MNT +xfsdump: level 2 incremental dump of HOSTNAME:SCRATCH_MNT based on level 1 dump begun DATE +xfsdump: dump date: DATE +xfsdump: session id: ID +xfsdump: session label: "stress_064" +xfsdump: ino map phase 1: skipping (no subtrees specified) +xfsdump: ino map phase 2: constructing initial dump list +xfsdump: ino map phase 3: pruning unneeded subtrees +xfsdump: ino map phase 4: estimating dump size +xfsdump: ino map phase 5: skipping (only one dump stream) +xfsdump: ino map construction complete +xfsdump: estimated dump size: NUM bytes +xfsdump: creating dump session media file 0 (media 0, file 0) +xfsdump: dumping ino map +xfsdump: dumping directories +xfsdump: dumping non-directory files +xfsdump: ending media file +xfsdump: media file size NUM bytes +xfsdump: dump size (non-dir files) : NUM bytes +xfsdump: dump complete: SECS seconds elapsed +xfsdump: Dump Status: SUCCESS +Dumping to file... +xfsdump -l3 -f DUMP_FILE -M stress_tape_media -L stress_064 SCRATCH_MNT +xfsdump: level 3 incremental dump of HOSTNAME:SCRATCH_MNT based on level 2 dump begun DATE +xfsdump: dump date: DATE +xfsdump: session id: ID +xfsdump: session label: "stress_064" +xfsdump: ino map phase 1: skipping (no subtrees specified) +xfsdump: ino map phase 2: constructing initial dump list +xfsdump: ino map phase 3: pruning unneeded subtrees +xfsdump: ino map phase 4: estimating dump size +xfsdump: ino map phase 5: skipping (only one dump stream) +xfsdump: ino map construction complete +xfsdump: estimated dump size: NUM bytes +xfsdump: creating dump session media file 0 (media 0, file 0) +xfsdump: dumping ino map +xfsdump: dumping directories +xfsdump: dumping non-directory files +xfsdump: ending media file +xfsdump: media file size NUM bytes +xfsdump: dump size (non-dir files) : NUM bytes +xfsdump: dump complete: SECS seconds elapsed +xfsdump: Dump Status: SUCCESS +Dumping to file... +xfsdump -l4 -f DUMP_FILE -M stress_tape_media -L stress_064 SCRATCH_MNT +xfsdump: level 4 incremental dump of HOSTNAME:SCRATCH_MNT based on level 3 dump begun DATE +xfsdump: dump date: DATE +xfsdump: session id: ID +xfsdump: session label: "stress_064" +xfsdump: ino map phase 1: skipping (no subtrees specified) +xfsdump: ino map phase 2: constructing initial dump list +xfsdump: ino map phase 3: pruning unneeded subtrees +xfsdump: ino map phase 4: estimating dump size +xfsdump: ino map phase 5: skipping (only one dump stream) +xfsdump: ino map construction complete +xfsdump: estimated dump size: NUM bytes +xfsdump: creating dump session media file 0 (media 0, file 0) +xfsdump: dumping ino map +xfsdump: dumping directories +xfsdump: dumping non-directory files +xfsdump: ending media file +xfsdump: media file size NUM bytes +xfsdump: dump size (non-dir files) : NUM bytes +xfsdump: dump complete: SECS seconds elapsed +xfsdump: Dump Status: SUCCESS +Dumping to file... +xfsdump -l5 -f DUMP_FILE -M stress_tape_media -L stress_064 SCRATCH_MNT +xfsdump: level 5 incremental dump of HOSTNAME:SCRATCH_MNT based on level 4 dump begun DATE +xfsdump: dump date: DATE +xfsdump: session id: ID +xfsdump: session label: "stress_064" +xfsdump: ino map phase 1: skipping (no subtrees specified) +xfsdump: ino map phase 2: constructing initial dump list +xfsdump: ino map phase 3: pruning unneeded subtrees +xfsdump: ino map phase 4: estimating dump size +xfsdump: ino map phase 5: skipping (only one dump stream) +xfsdump: ino map construction complete +xfsdump: estimated dump size: NUM bytes +xfsdump: creating dump session media file 0 (media 0, file 0) +xfsdump: dumping ino map +xfsdump: dumping directories +xfsdump: dumping non-directory files +xfsdump: ending media file +xfsdump: media file size NUM bytes +xfsdump: dump size (non-dir files) : NUM bytes +xfsdump: dump complete: SECS seconds elapsed +xfsdump: Dump Status: SUCCESS +Dumping to file... +xfsdump -l6 -f DUMP_FILE -M stress_tape_media -L stress_064 SCRATCH_MNT +xfsdump: level 6 incremental dump of HOSTNAME:SCRATCH_MNT based on level 5 dump begun DATE +xfsdump: dump date: DATE +xfsdump: session id: ID +xfsdump: session label: "stress_064" +xfsdump: ino map phase 1: skipping (no subtrees specified) +xfsdump: ino map phase 2: constructing initial dump list +xfsdump: ino map phase 3: pruning unneeded subtrees +xfsdump: ino map phase 4: estimating dump size +xfsdump: ino map phase 5: skipping (only one dump stream) +xfsdump: ino map construction complete +xfsdump: estimated dump size: NUM bytes +xfsdump: creating dump session media file 0 (media 0, file 0) +xfsdump: dumping ino map +xfsdump: dumping directories +xfsdump: dumping non-directory files +xfsdump: ending media file +xfsdump: media file size NUM bytes +xfsdump: dump size (non-dir files) : NUM bytes +xfsdump: dump complete: SECS seconds elapsed +xfsdump: Dump Status: SUCCESS +Dumping to file... +xfsdump -l7 -f DUMP_FILE -M stress_tape_media -L stress_064 SCRATCH_MNT +xfsdump: level 7 incremental dump of HOSTNAME:SCRATCH_MNT based on level 6 dump begun DATE +xfsdump: dump date: DATE +xfsdump: session id: ID +xfsdump: session label: "stress_064" +xfsdump: ino map phase 1: skipping (no subtrees specified) +xfsdump: ino map phase 2: constructing initial dump list +xfsdump: ino map phase 3: pruning unneeded subtrees +xfsdump: ino map phase 4: estimating dump size +xfsdump: ino map phase 5: skipping (only one dump stream) +xfsdump: ino map construction complete +xfsdump: estimated dump size: NUM bytes +xfsdump: creating dump session media file 0 (media 0, file 0) +xfsdump: dumping ino map +xfsdump: dumping directories +xfsdump: dumping non-directory files +xfsdump: ending media file +xfsdump: media file size NUM bytes +xfsdump: dump size (non-dir files) : NUM bytes +xfsdump: dump complete: SECS seconds elapsed +xfsdump: Dump Status: SUCCESS +Dumping to file... +xfsdump -l8 -f DUMP_FILE -M stress_tape_media -L stress_064 SCRATCH_MNT +xfsdump: level 8 incremental dump of HOSTNAME:SCRATCH_MNT based on level 7 dump begun DATE +xfsdump: dump date: DATE +xfsdump: session id: ID +xfsdump: session label: "stress_064" +xfsdump: ino map phase 1: skipping (no subtrees specified) +xfsdump: ino map phase 2: constructing initial dump list +xfsdump: ino map phase 3: pruning unneeded subtrees +xfsdump: ino map phase 4: estimating dump size +xfsdump: ino map phase 5: skipping (only one dump stream) +xfsdump: ino map construction complete +xfsdump: estimated dump size: NUM bytes +xfsdump: creating dump session media file 0 (media 0, file 0) +xfsdump: dumping ino map +xfsdump: dumping directories +xfsdump: dumping non-directory files +xfsdump: ending media file +xfsdump: media file size NUM bytes +xfsdump: dump size (non-dir files) : NUM bytes +xfsdump: dump complete: SECS seconds elapsed +xfsdump: Dump Status: SUCCESS +Dumping to file... +xfsdump -l9 -f DUMP_FILE -M stress_tape_media -L stress_064 SCRATCH_MNT +xfsdump: level 9 incremental dump of HOSTNAME:SCRATCH_MNT based on level 8 dump begun DATE +xfsdump: dump date: DATE +xfsdump: session id: ID +xfsdump: session label: "stress_064" +xfsdump: ino map phase 1: skipping (no subtrees specified) +xfsdump: ino map phase 2: constructing initial dump list +xfsdump: ino map phase 3: pruning unneeded subtrees +xfsdump: ino map phase 4: estimating dump size +xfsdump: ino map phase 5: skipping (only one dump stream) +xfsdump: ino map construction complete +xfsdump: estimated dump size: NUM bytes +xfsdump: creating dump session media file 0 (media 0, file 0) +xfsdump: dumping ino map +xfsdump: dumping directories +xfsdump: dumping non-directory files +xfsdump: ending media file +xfsdump: media file size NUM bytes +xfsdump: dump size (non-dir files) : NUM bytes +xfsdump: dump complete: SECS seconds elapsed +xfsdump: Dump Status: SUCCESS +Listing of what files we start with: +12 file1 +12 file1_h1 +12 file1_h2 +12 file1_h3 +12 file1_h4 +12 file1_h5 +12 file2 +12 file2_h1 +12 file2_h2 +12 file2_h3 +12 file2_h4 +12 file2_h5 +12 file3 +12 file3_h1 +12 file3_h2 +12 file3_h3 +12 file3_h4 +12 file3_h5 +12 file4 +12 file4_h1 +12 file4_h2 +12 file4_h3 +12 file4_h4 +12 file4_h5 +12 file5 +12 file5_h1 +12 file5_h2 +12 file5_h3 +12 file5_h4 +12 file5_h5 +12 file6 +12 file6_h1 +12 file6_h2 +12 file6_h3 +12 file6_h4 +12 file6_h5 +12 file7 +12 file7_h1 +12 file7_h2 +12 file7_h3 +12 file7_h4 +12 file7_h5 +12 file8 +12 file8_h1 +12 file8_h2 +12 file8_h3 +12 file8_h4 +12 file8_h5 +12 file9 +12 file9_h1 +12 file9_h2 +12 file9_h3 +12 file9_h4 +12 file9_h5 +Look at what files are contained in the inc. dump + +restoring from df.level0 +Contents of dump ... +xfsrestore -f DUMP_FILE -t +xfsrestore: searching media for dump +xfsrestore: examining media file 0 +xfsrestore: dump description: +xfsrestore: hostname: HOSTNAME +xfsrestore: mount point: SCRATCH_MNT +xfsrestore: volume: SCRATCH_DEV +xfsrestore: session time: TIME +xfsrestore: level: 0 +xfsrestore: session label: "stress_064" +xfsrestore: media label: "stress_tape_media" +xfsrestore: file system id: ID +xfsrestore: session id: ID +xfsrestore: media id: ID +xfsrestore: using online session inventory +xfsrestore: searching media for directory dump +xfsrestore: reading directories +xfsrestore: directory post-processing +xfsrestore: reading non-directory files +xfsrestore: table of contents display complete: SECS seconds elapsed +xfsrestore: Restore Status: SUCCESS + +dumpdir/file1 +dumpdir/file1_h1 +dumpdir/file1_h2 +dumpdir/file1_h3 +dumpdir/file1_h4 +dumpdir/file1_h5 +dumpdir/file2 +dumpdir/file2_h1 +dumpdir/file2_h2 +dumpdir/file2_h3 +dumpdir/file2_h4 +dumpdir/file2_h5 +dumpdir/file3 +dumpdir/file3_h1 +dumpdir/file3_h2 +dumpdir/file3_h3 +dumpdir/file3_h4 +dumpdir/file3_h5 +dumpdir/file4 +dumpdir/file4_h1 +dumpdir/file4_h2 +dumpdir/file4_h3 +dumpdir/file4_h4 +dumpdir/file4_h5 +dumpdir/file5 +dumpdir/file5_h1 +dumpdir/file5_h2 +dumpdir/file5_h3 +dumpdir/file5_h4 +dumpdir/file5_h5 +dumpdir/file6 +dumpdir/file6_h1 +dumpdir/file6_h2 +dumpdir/file6_h3 +dumpdir/file6_h4 +dumpdir/file6_h5 +dumpdir/file7 +dumpdir/file7_h1 +dumpdir/file7_h2 +dumpdir/file7_h3 +dumpdir/file7_h4 +dumpdir/file7_h5 +dumpdir/file8 +dumpdir/file8_h1 +dumpdir/file8_h2 +dumpdir/file8_h3 +dumpdir/file8_h4 +dumpdir/file8_h5 +dumpdir/file9 +dumpdir/file9_h1 +dumpdir/file9_h2 +dumpdir/file9_h3 +dumpdir/file9_h4 +dumpdir/file9_h5 + +restoring from df.level1 +Contents of dump ... +xfsrestore -f DUMP_FILE -t +xfsrestore: searching media for dump +xfsrestore: examining media file 0 +xfsrestore: dump description: +xfsrestore: hostname: HOSTNAME +xfsrestore: mount point: SCRATCH_MNT +xfsrestore: volume: SCRATCH_DEV +xfsrestore: session time: TIME +xfsrestore: level: 1 +xfsrestore: session label: "stress_064" +xfsrestore: media label: "stress_tape_media" +xfsrestore: file system id: ID +xfsrestore: session id: ID +xfsrestore: media id: ID +xfsrestore: using online session inventory +xfsrestore: searching media for directory dump +xfsrestore: reading directories +xfsrestore: directory post-processing +xfsrestore: reading non-directory files +xfsrestore: table of contents display complete: SECS seconds elapsed +xfsrestore: Restore Status: SUCCESS + +dumpdir/file1 +dumpdir/file1_h1 +dumpdir/file1_h2 +dumpdir/file1_h3 +dumpdir/file1_h4 +dumpdir/file1_h5 + +restoring from df.level2 +Contents of dump ... +xfsrestore -f DUMP_FILE -t +xfsrestore: searching media for dump +xfsrestore: examining media file 0 +xfsrestore: dump description: +xfsrestore: hostname: HOSTNAME +xfsrestore: mount point: SCRATCH_MNT +xfsrestore: volume: SCRATCH_DEV +xfsrestore: session time: TIME +xfsrestore: level: 2 +xfsrestore: session label: "stress_064" +xfsrestore: media label: "stress_tape_media" +xfsrestore: file system id: ID +xfsrestore: session id: ID +xfsrestore: media id: ID +xfsrestore: using online session inventory +xfsrestore: searching media for directory dump +xfsrestore: reading directories +xfsrestore: directory post-processing +xfsrestore: reading non-directory files +xfsrestore: table of contents display complete: SECS seconds elapsed +xfsrestore: Restore Status: SUCCESS + +dumpdir/file2 +dumpdir/file2_h1 +dumpdir/file2_h2 +dumpdir/file2_h3 +dumpdir/file2_h4 +dumpdir/file2_h5 + +restoring from df.level3 +Contents of dump ... +xfsrestore -f DUMP_FILE -t +xfsrestore: searching media for dump +xfsrestore: examining media file 0 +xfsrestore: dump description: +xfsrestore: hostname: HOSTNAME +xfsrestore: mount point: SCRATCH_MNT +xfsrestore: volume: SCRATCH_DEV +xfsrestore: session time: TIME +xfsrestore: level: 3 +xfsrestore: session label: "stress_064" +xfsrestore: media label: "stress_tape_media" +xfsrestore: file system id: ID +xfsrestore: session id: ID +xfsrestore: media id: ID +xfsrestore: using online session inventory +xfsrestore: searching media for directory dump +xfsrestore: reading directories +xfsrestore: directory post-processing +xfsrestore: reading non-directory files +xfsrestore: table of contents display complete: SECS seconds elapsed +xfsrestore: Restore Status: SUCCESS + +dumpdir/file3 +dumpdir/file3_h1 +dumpdir/file3_h2 +dumpdir/file3_h3 +dumpdir/file3_h4 +dumpdir/file3_h5 + +restoring from df.level4 +Contents of dump ... +xfsrestore -f DUMP_FILE -t +xfsrestore: searching media for dump +xfsrestore: examining media file 0 +xfsrestore: dump description: +xfsrestore: hostname: HOSTNAME +xfsrestore: mount point: SCRATCH_MNT +xfsrestore: volume: SCRATCH_DEV +xfsrestore: session time: TIME +xfsrestore: level: 4 +xfsrestore: session label: "stress_064" +xfsrestore: media label: "stress_tape_media" +xfsrestore: file system id: ID +xfsrestore: session id: ID +xfsrestore: media id: ID +xfsrestore: using online session inventory +xfsrestore: searching media for directory dump +xfsrestore: reading directories +xfsrestore: directory post-processing +xfsrestore: reading non-directory files +xfsrestore: table of contents display complete: SECS seconds elapsed +xfsrestore: Restore Status: SUCCESS + +dumpdir/file4 +dumpdir/file4_h1 +dumpdir/file4_h2 +dumpdir/file4_h3 +dumpdir/file4_h4 +dumpdir/file4_h5 + +restoring from df.level5 +Contents of dump ... +xfsrestore -f DUMP_FILE -t +xfsrestore: searching media for dump +xfsrestore: examining media file 0 +xfsrestore: dump description: +xfsrestore: hostname: HOSTNAME +xfsrestore: mount point: SCRATCH_MNT +xfsrestore: volume: SCRATCH_DEV +xfsrestore: session time: TIME +xfsrestore: level: 5 +xfsrestore: session label: "stress_064" +xfsrestore: media label: "stress_tape_media" +xfsrestore: file system id: ID +xfsrestore: session id: ID +xfsrestore: media id: ID +xfsrestore: using online session inventory +xfsrestore: searching media for directory dump +xfsrestore: reading directories +xfsrestore: directory post-processing +xfsrestore: reading non-directory files +xfsrestore: table of contents display complete: SECS seconds elapsed +xfsrestore: Restore Status: SUCCESS + +dumpdir/file5 +dumpdir/file5_h1 +dumpdir/file5_h2 +dumpdir/file5_h3 +dumpdir/file5_h4 +dumpdir/file5_h5 + +restoring from df.level6 +Contents of dump ... +xfsrestore -f DUMP_FILE -t +xfsrestore: searching media for dump +xfsrestore: examining media file 0 +xfsrestore: dump description: +xfsrestore: hostname: HOSTNAME +xfsrestore: mount point: SCRATCH_MNT +xfsrestore: volume: SCRATCH_DEV +xfsrestore: session time: TIME +xfsrestore: level: 6 +xfsrestore: session label: "stress_064" +xfsrestore: media label: "stress_tape_media" +xfsrestore: file system id: ID +xfsrestore: session id: ID +xfsrestore: media id: ID +xfsrestore: using online session inventory +xfsrestore: searching media for directory dump +xfsrestore: reading directories +xfsrestore: directory post-processing +xfsrestore: reading non-directory files +xfsrestore: table of contents display complete: SECS seconds elapsed +xfsrestore: Restore Status: SUCCESS + +dumpdir/file6 +dumpdir/file6_h1 +dumpdir/file6_h2 +dumpdir/file6_h3 +dumpdir/file6_h4 +dumpdir/file6_h5 + +restoring from df.level7 +Contents of dump ... +xfsrestore -f DUMP_FILE -t +xfsrestore: searching media for dump +xfsrestore: examining media file 0 +xfsrestore: dump description: +xfsrestore: hostname: HOSTNAME +xfsrestore: mount point: SCRATCH_MNT +xfsrestore: volume: SCRATCH_DEV +xfsrestore: session time: TIME +xfsrestore: level: 7 +xfsrestore: session label: "stress_064" +xfsrestore: media label: "stress_tape_media" +xfsrestore: file system id: ID +xfsrestore: session id: ID +xfsrestore: media id: ID +xfsrestore: using online session inventory +xfsrestore: searching media for directory dump +xfsrestore: reading directories +xfsrestore: directory post-processing +xfsrestore: reading non-directory files +xfsrestore: table of contents display complete: SECS seconds elapsed +xfsrestore: Restore Status: SUCCESS + +dumpdir/file7 +dumpdir/file7_h1 +dumpdir/file7_h2 +dumpdir/file7_h3 +dumpdir/file7_h4 +dumpdir/file7_h5 + +restoring from df.level8 +Contents of dump ... +xfsrestore -f DUMP_FILE -t +xfsrestore: searching media for dump +xfsrestore: examining media file 0 +xfsrestore: dump description: +xfsrestore: hostname: HOSTNAME +xfsrestore: mount point: SCRATCH_MNT +xfsrestore: volume: SCRATCH_DEV +xfsrestore: session time: TIME +xfsrestore: level: 8 +xfsrestore: session label: "stress_064" +xfsrestore: media label: "stress_tape_media" +xfsrestore: file system id: ID +xfsrestore: session id: ID +xfsrestore: media id: ID +xfsrestore: using online session inventory +xfsrestore: searching media for directory dump +xfsrestore: reading directories +xfsrestore: directory post-processing +xfsrestore: reading non-directory files +xfsrestore: table of contents display complete: SECS seconds elapsed +xfsrestore: Restore Status: SUCCESS + +dumpdir/file8 +dumpdir/file8_h1 +dumpdir/file8_h2 +dumpdir/file8_h3 +dumpdir/file8_h4 +dumpdir/file8_h5 + +restoring from df.level9 +Contents of dump ... +xfsrestore -f DUMP_FILE -t +xfsrestore: searching media for dump +xfsrestore: examining media file 0 +xfsrestore: dump description: +xfsrestore: hostname: HOSTNAME +xfsrestore: mount point: SCRATCH_MNT +xfsrestore: volume: SCRATCH_DEV +xfsrestore: session time: TIME +xfsrestore: level: 9 +xfsrestore: session label: "stress_064" +xfsrestore: media label: "stress_tape_media" +xfsrestore: file system id: ID +xfsrestore: session id: ID +xfsrestore: media id: ID +xfsrestore: using online session inventory +xfsrestore: searching media for directory dump +xfsrestore: reading directories +xfsrestore: directory post-processing +xfsrestore: reading non-directory files +xfsrestore: table of contents display complete: SECS seconds elapsed +xfsrestore: Restore Status: SUCCESS + +dumpdir/file9 +dumpdir/file9_h1 +dumpdir/file9_h2 +dumpdir/file9_h3 +dumpdir/file9_h4 +dumpdir/file9_h5 +Do the cumulative restores + +restoring from df.level0 +Restoring cumumlative from file... +xfsrestore -f DUMP_FILE -r RESTORE_DIR +xfsrestore: searching media for dump +xfsrestore: examining media file 0 +xfsrestore: dump description: +xfsrestore: hostname: HOSTNAME +xfsrestore: mount point: SCRATCH_MNT +xfsrestore: volume: SCRATCH_DEV +xfsrestore: session time: TIME +xfsrestore: level: 0 +xfsrestore: session label: "stress_064" +xfsrestore: media label: "stress_tape_media" +xfsrestore: file system id: ID +xfsrestore: session id: ID +xfsrestore: media id: ID +xfsrestore: using online session inventory +xfsrestore: searching media for directory dump +xfsrestore: reading directories +xfsrestore: directory post-processing +xfsrestore: restoring non-directory files +xfsrestore: restore complete: SECS seconds elapsed +xfsrestore: Restore Status: SUCCESS +ls -l restore_dir +0 file1 +0 file1_h1 +0 file1_h2 +0 file1_h3 +0 file1_h4 +0 file1_h5 +0 file2 +0 file2_h1 +0 file2_h2 +0 file2_h3 +0 file2_h4 +0 file2_h5 +0 file3 +0 file3_h1 +0 file3_h2 +0 file3_h3 +0 file3_h4 +0 file3_h5 +0 file4 +0 file4_h1 +0 file4_h2 +0 file4_h3 +0 file4_h4 +0 file4_h5 +0 file5 +0 file5_h1 +0 file5_h2 +0 file5_h3 +0 file5_h4 +0 file5_h5 +0 file6 +0 file6_h1 +0 file6_h2 +0 file6_h3 +0 file6_h4 +0 file6_h5 +0 file7 +0 file7_h1 +0 file7_h2 +0 file7_h3 +0 file7_h4 +0 file7_h5 +0 file8 +0 file8_h1 +0 file8_h2 +0 file8_h3 +0 file8_h4 +0 file8_h5 +0 file9 +0 file9_h1 +0 file9_h2 +0 file9_h3 +0 file9_h4 +0 file9_h5 + +restoring from df.level1 +Restoring cumumlative from file... +xfsrestore -f DUMP_FILE -r RESTORE_DIR +xfsrestore: searching media for dump +xfsrestore: examining media file 0 +xfsrestore: dump description: +xfsrestore: hostname: HOSTNAME +xfsrestore: mount point: SCRATCH_MNT +xfsrestore: volume: SCRATCH_DEV +xfsrestore: session time: TIME +xfsrestore: level: 1 +xfsrestore: session label: "stress_064" +xfsrestore: media label: "stress_tape_media" +xfsrestore: file system id: ID +xfsrestore: session id: ID +xfsrestore: media id: ID +xfsrestore: using online session inventory +xfsrestore: searching media for directory dump +xfsrestore: reading directories +xfsrestore: directory post-processing +xfsrestore: restoring non-directory files +xfsrestore: restore complete: SECS seconds elapsed +xfsrestore: Restore Status: SUCCESS +ls -l restore_dir +12 file1 +12 file1_h1 +12 file1_h2 +12 file1_h3 +12 file1_h4 +12 file1_h5 +0 file2 +0 file2_h1 +0 file2_h2 +0 file2_h3 +0 file2_h4 +0 file2_h5 +0 file3 +0 file3_h1 +0 file3_h2 +0 file3_h3 +0 file3_h4 +0 file3_h5 +0 file4 +0 file4_h1 +0 file4_h2 +0 file4_h3 +0 file4_h4 +0 file4_h5 +0 file5 +0 file5_h1 +0 file5_h2 +0 file5_h3 +0 file5_h4 +0 file5_h5 +0 file6 +0 file6_h1 +0 file6_h2 +0 file6_h3 +0 file6_h4 +0 file6_h5 +0 file7 +0 file7_h1 +0 file7_h2 +0 file7_h3 +0 file7_h4 +0 file7_h5 +0 file8 +0 file8_h1 +0 file8_h2 +0 file8_h3 +0 file8_h4 +0 file8_h5 +0 file9 +0 file9_h1 +0 file9_h2 +0 file9_h3 +0 file9_h4 +0 file9_h5 + +restoring from df.level2 +Restoring cumumlative from file... +xfsrestore -f DUMP_FILE -r RESTORE_DIR +xfsrestore: searching media for dump +xfsrestore: examining media file 0 +xfsrestore: dump description: +xfsrestore: hostname: HOSTNAME +xfsrestore: mount point: SCRATCH_MNT +xfsrestore: volume: SCRATCH_DEV +xfsrestore: session time: TIME +xfsrestore: level: 2 +xfsrestore: session label: "stress_064" +xfsrestore: media label: "stress_tape_media" +xfsrestore: file system id: ID +xfsrestore: session id: ID +xfsrestore: media id: ID +xfsrestore: using online session inventory +xfsrestore: searching media for directory dump +xfsrestore: reading directories +xfsrestore: directory post-processing +xfsrestore: restoring non-directory files +xfsrestore: restore complete: SECS seconds elapsed +xfsrestore: Restore Status: SUCCESS +ls -l restore_dir +12 file1 +12 file1_h1 +12 file1_h2 +12 file1_h3 +12 file1_h4 +12 file1_h5 +12 file2 +12 file2_h1 +12 file2_h2 +12 file2_h3 +12 file2_h4 +12 file2_h5 +0 file3 +0 file3_h1 +0 file3_h2 +0 file3_h3 +0 file3_h4 +0 file3_h5 +0 file4 +0 file4_h1 +0 file4_h2 +0 file4_h3 +0 file4_h4 +0 file4_h5 +0 file5 +0 file5_h1 +0 file5_h2 +0 file5_h3 +0 file5_h4 +0 file5_h5 +0 file6 +0 file6_h1 +0 file6_h2 +0 file6_h3 +0 file6_h4 +0 file6_h5 +0 file7 +0 file7_h1 +0 file7_h2 +0 file7_h3 +0 file7_h4 +0 file7_h5 +0 file8 +0 file8_h1 +0 file8_h2 +0 file8_h3 +0 file8_h4 +0 file8_h5 +0 file9 +0 file9_h1 +0 file9_h2 +0 file9_h3 +0 file9_h4 +0 file9_h5 + +restoring from df.level3 +Restoring cumumlative from file... +xfsrestore -f DUMP_FILE -r RESTORE_DIR +xfsrestore: searching media for dump +xfsrestore: examining media file 0 +xfsrestore: dump description: +xfsrestore: hostname: HOSTNAME +xfsrestore: mount point: SCRATCH_MNT +xfsrestore: volume: SCRATCH_DEV +xfsrestore: session time: TIME +xfsrestore: level: 3 +xfsrestore: session label: "stress_064" +xfsrestore: media label: "stress_tape_media" +xfsrestore: file system id: ID +xfsrestore: session id: ID +xfsrestore: media id: ID +xfsrestore: using online session inventory +xfsrestore: searching media for directory dump +xfsrestore: reading directories +xfsrestore: directory post-processing +xfsrestore: restoring non-directory files +xfsrestore: restore complete: SECS seconds elapsed +xfsrestore: Restore Status: SUCCESS +ls -l restore_dir +12 file1 +12 file1_h1 +12 file1_h2 +12 file1_h3 +12 file1_h4 +12 file1_h5 +12 file2 +12 file2_h1 +12 file2_h2 +12 file2_h3 +12 file2_h4 +12 file2_h5 +12 file3 +12 file3_h1 +12 file3_h2 +12 file3_h3 +12 file3_h4 +12 file3_h5 +0 file4 +0 file4_h1 +0 file4_h2 +0 file4_h3 +0 file4_h4 +0 file4_h5 +0 file5 +0 file5_h1 +0 file5_h2 +0 file5_h3 +0 file5_h4 +0 file5_h5 +0 file6 +0 file6_h1 +0 file6_h2 +0 file6_h3 +0 file6_h4 +0 file6_h5 +0 file7 +0 file7_h1 +0 file7_h2 +0 file7_h3 +0 file7_h4 +0 file7_h5 +0 file8 +0 file8_h1 +0 file8_h2 +0 file8_h3 +0 file8_h4 +0 file8_h5 +0 file9 +0 file9_h1 +0 file9_h2 +0 file9_h3 +0 file9_h4 +0 file9_h5 + +restoring from df.level4 +Restoring cumumlative from file... +xfsrestore -f DUMP_FILE -r RESTORE_DIR +xfsrestore: searching media for dump +xfsrestore: examining media file 0 +xfsrestore: dump description: +xfsrestore: hostname: HOSTNAME +xfsrestore: mount point: SCRATCH_MNT +xfsrestore: volume: SCRATCH_DEV +xfsrestore: session time: TIME +xfsrestore: level: 4 +xfsrestore: session label: "stress_064" +xfsrestore: media label: "stress_tape_media" +xfsrestore: file system id: ID +xfsrestore: session id: ID +xfsrestore: media id: ID +xfsrestore: using online session inventory +xfsrestore: searching media for directory dump +xfsrestore: reading directories +xfsrestore: directory post-processing +xfsrestore: restoring non-directory files +xfsrestore: restore complete: SECS seconds elapsed +xfsrestore: Restore Status: SUCCESS +ls -l restore_dir +12 file1 +12 file1_h1 +12 file1_h2 +12 file1_h3 +12 file1_h4 +12 file1_h5 +12 file2 +12 file2_h1 +12 file2_h2 +12 file2_h3 +12 file2_h4 +12 file2_h5 +12 file3 +12 file3_h1 +12 file3_h2 +12 file3_h3 +12 file3_h4 +12 file3_h5 +12 file4 +12 file4_h1 +12 file4_h2 +12 file4_h3 +12 file4_h4 +12 file4_h5 +0 file5 +0 file5_h1 +0 file5_h2 +0 file5_h3 +0 file5_h4 +0 file5_h5 +0 file6 +0 file6_h1 +0 file6_h2 +0 file6_h3 +0 file6_h4 +0 file6_h5 +0 file7 +0 file7_h1 +0 file7_h2 +0 file7_h3 +0 file7_h4 +0 file7_h5 +0 file8 +0 file8_h1 +0 file8_h2 +0 file8_h3 +0 file8_h4 +0 file8_h5 +0 file9 +0 file9_h1 +0 file9_h2 +0 file9_h3 +0 file9_h4 +0 file9_h5 + +restoring from df.level5 +Restoring cumumlative from file... +xfsrestore -f DUMP_FILE -r RESTORE_DIR +xfsrestore: searching media for dump +xfsrestore: examining media file 0 +xfsrestore: dump description: +xfsrestore: hostname: HOSTNAME +xfsrestore: mount point: SCRATCH_MNT +xfsrestore: volume: SCRATCH_DEV +xfsrestore: session time: TIME +xfsrestore: level: 5 +xfsrestore: session label: "stress_064" +xfsrestore: media label: "stress_tape_media" +xfsrestore: file system id: ID +xfsrestore: session id: ID +xfsrestore: media id: ID +xfsrestore: using online session inventory +xfsrestore: searching media for directory dump +xfsrestore: reading directories +xfsrestore: directory post-processing +xfsrestore: restoring non-directory files +xfsrestore: restore complete: SECS seconds elapsed +xfsrestore: Restore Status: SUCCESS +ls -l restore_dir +12 file1 +12 file1_h1 +12 file1_h2 +12 file1_h3 +12 file1_h4 +12 file1_h5 +12 file2 +12 file2_h1 +12 file2_h2 +12 file2_h3 +12 file2_h4 +12 file2_h5 +12 file3 +12 file3_h1 +12 file3_h2 +12 file3_h3 +12 file3_h4 +12 file3_h5 +12 file4 +12 file4_h1 +12 file4_h2 +12 file4_h3 +12 file4_h4 +12 file4_h5 +12 file5 +12 file5_h1 +12 file5_h2 +12 file5_h3 +12 file5_h4 +12 file5_h5 +0 file6 +0 file6_h1 +0 file6_h2 +0 file6_h3 +0 file6_h4 +0 file6_h5 +0 file7 +0 file7_h1 +0 file7_h2 +0 file7_h3 +0 file7_h4 +0 file7_h5 +0 file8 +0 file8_h1 +0 file8_h2 +0 file8_h3 +0 file8_h4 +0 file8_h5 +0 file9 +0 file9_h1 +0 file9_h2 +0 file9_h3 +0 file9_h4 +0 file9_h5 + +restoring from df.level6 +Restoring cumumlative from file... +xfsrestore -f DUMP_FILE -r RESTORE_DIR +xfsrestore: searching media for dump +xfsrestore: examining media file 0 +xfsrestore: dump description: +xfsrestore: hostname: HOSTNAME +xfsrestore: mount point: SCRATCH_MNT +xfsrestore: volume: SCRATCH_DEV +xfsrestore: session time: TIME +xfsrestore: level: 6 +xfsrestore: session label: "stress_064" +xfsrestore: media label: "stress_tape_media" +xfsrestore: file system id: ID +xfsrestore: session id: ID +xfsrestore: media id: ID +xfsrestore: using online session inventory +xfsrestore: searching media for directory dump +xfsrestore: reading directories +xfsrestore: directory post-processing +xfsrestore: restoring non-directory files +xfsrestore: restore complete: SECS seconds elapsed +xfsrestore: Restore Status: SUCCESS +ls -l restore_dir +12 file1 +12 file1_h1 +12 file1_h2 +12 file1_h3 +12 file1_h4 +12 file1_h5 +12 file2 +12 file2_h1 +12 file2_h2 +12 file2_h3 +12 file2_h4 +12 file2_h5 +12 file3 +12 file3_h1 +12 file3_h2 +12 file3_h3 +12 file3_h4 +12 file3_h5 +12 file4 +12 file4_h1 +12 file4_h2 +12 file4_h3 +12 file4_h4 +12 file4_h5 +12 file5 +12 file5_h1 +12 file5_h2 +12 file5_h3 +12 file5_h4 +12 file5_h5 +12 file6 +12 file6_h1 +12 file6_h2 +12 file6_h3 +12 file6_h4 +12 file6_h5 +0 file7 +0 file7_h1 +0 file7_h2 +0 file7_h3 +0 file7_h4 +0 file7_h5 +0 file8 +0 file8_h1 +0 file8_h2 +0 file8_h3 +0 file8_h4 +0 file8_h5 +0 file9 +0 file9_h1 +0 file9_h2 +0 file9_h3 +0 file9_h4 +0 file9_h5 + +restoring from df.level7 +Restoring cumumlative from file... +xfsrestore -f DUMP_FILE -r RESTORE_DIR +xfsrestore: searching media for dump +xfsrestore: examining media file 0 +xfsrestore: dump description: +xfsrestore: hostname: HOSTNAME +xfsrestore: mount point: SCRATCH_MNT +xfsrestore: volume: SCRATCH_DEV +xfsrestore: session time: TIME +xfsrestore: level: 7 +xfsrestore: session label: "stress_064" +xfsrestore: media label: "stress_tape_media" +xfsrestore: file system id: ID +xfsrestore: session id: ID +xfsrestore: media id: ID +xfsrestore: using online session inventory +xfsrestore: searching media for directory dump +xfsrestore: reading directories +xfsrestore: directory post-processing +xfsrestore: restoring non-directory files +xfsrestore: restore complete: SECS seconds elapsed +xfsrestore: Restore Status: SUCCESS +ls -l restore_dir +12 file1 +12 file1_h1 +12 file1_h2 +12 file1_h3 +12 file1_h4 +12 file1_h5 +12 file2 +12 file2_h1 +12 file2_h2 +12 file2_h3 +12 file2_h4 +12 file2_h5 +12 file3 +12 file3_h1 +12 file3_h2 +12 file3_h3 +12 file3_h4 +12 file3_h5 +12 file4 +12 file4_h1 +12 file4_h2 +12 file4_h3 +12 file4_h4 +12 file4_h5 +12 file5 +12 file5_h1 +12 file5_h2 +12 file5_h3 +12 file5_h4 +12 file5_h5 +12 file6 +12 file6_h1 +12 file6_h2 +12 file6_h3 +12 file6_h4 +12 file6_h5 +12 file7 +12 file7_h1 +12 file7_h2 +12 file7_h3 +12 file7_h4 +12 file7_h5 +0 file8 +0 file8_h1 +0 file8_h2 +0 file8_h3 +0 file8_h4 +0 file8_h5 +0 file9 +0 file9_h1 +0 file9_h2 +0 file9_h3 +0 file9_h4 +0 file9_h5 + +restoring from df.level8 +Restoring cumumlative from file... +xfsrestore -f DUMP_FILE -r RESTORE_DIR +xfsrestore: searching media for dump +xfsrestore: examining media file 0 +xfsrestore: dump description: +xfsrestore: hostname: HOSTNAME +xfsrestore: mount point: SCRATCH_MNT +xfsrestore: volume: SCRATCH_DEV +xfsrestore: session time: TIME +xfsrestore: level: 8 +xfsrestore: session label: "stress_064" +xfsrestore: media label: "stress_tape_media" +xfsrestore: file system id: ID +xfsrestore: session id: ID +xfsrestore: media id: ID +xfsrestore: using online session inventory +xfsrestore: searching media for directory dump +xfsrestore: reading directories +xfsrestore: directory post-processing +xfsrestore: restoring non-directory files +xfsrestore: restore complete: SECS seconds elapsed +xfsrestore: Restore Status: SUCCESS +ls -l restore_dir +12 file1 +12 file1_h1 +12 file1_h2 +12 file1_h3 +12 file1_h4 +12 file1_h5 +12 file2 +12 file2_h1 +12 file2_h2 +12 file2_h3 +12 file2_h4 +12 file2_h5 +12 file3 +12 file3_h1 +12 file3_h2 +12 file3_h3 +12 file3_h4 +12 file3_h5 +12 file4 +12 file4_h1 +12 file4_h2 +12 file4_h3 +12 file4_h4 +12 file4_h5 +12 file5 +12 file5_h1 +12 file5_h2 +12 file5_h3 +12 file5_h4 +12 file5_h5 +12 file6 +12 file6_h1 +12 file6_h2 +12 file6_h3 +12 file6_h4 +12 file6_h5 +12 file7 +12 file7_h1 +12 file7_h2 +12 file7_h3 +12 file7_h4 +12 file7_h5 +12 file8 +12 file8_h1 +12 file8_h2 +12 file8_h3 +12 file8_h4 +12 file8_h5 +0 file9 +0 file9_h1 +0 file9_h2 +0 file9_h3 +0 file9_h4 +0 file9_h5 + +restoring from df.level9 +Restoring cumumlative from file... +xfsrestore -f DUMP_FILE -r RESTORE_DIR +xfsrestore: searching media for dump +xfsrestore: examining media file 0 +xfsrestore: dump description: +xfsrestore: hostname: HOSTNAME +xfsrestore: mount point: SCRATCH_MNT +xfsrestore: volume: SCRATCH_DEV +xfsrestore: session time: TIME +xfsrestore: level: 9 +xfsrestore: session label: "stress_064" +xfsrestore: media label: "stress_tape_media" +xfsrestore: file system id: ID +xfsrestore: session id: ID +xfsrestore: media id: ID +xfsrestore: using online session inventory +xfsrestore: searching media for directory dump +xfsrestore: reading directories +xfsrestore: directory post-processing +xfsrestore: restoring non-directory files +xfsrestore: restore complete: SECS seconds elapsed +xfsrestore: Restore Status: SUCCESS +ls -l restore_dir +12 file1 +12 file1_h1 +12 file1_h2 +12 file1_h3 +12 file1_h4 +12 file1_h5 +12 file2 +12 file2_h1 +12 file2_h2 +12 file2_h3 +12 file2_h4 +12 file2_h5 +12 file3 +12 file3_h1 +12 file3_h2 +12 file3_h3 +12 file3_h4 +12 file3_h5 +12 file4 +12 file4_h1 +12 file4_h2 +12 file4_h3 +12 file4_h4 +12 file4_h5 +12 file5 +12 file5_h1 +12 file5_h2 +12 file5_h3 +12 file5_h4 +12 file5_h5 +12 file6 +12 file6_h1 +12 file6_h2 +12 file6_h3 +12 file6_h4 +12 file6_h5 +12 file7 +12 file7_h1 +12 file7_h2 +12 file7_h3 +12 file7_h4 +12 file7_h5 +12 file8 +12 file8_h1 +12 file8_h2 +12 file8_h3 +12 file8_h4 +12 file8_h5 +12 file9 +12 file9_h1 +12 file9_h2 +12 file9_h3 +12 file9_h4 +12 file9_h5 diff --git a/common.dump b/common.dump index 88761123..11c49886 100644 --- a/common.dump +++ b/common.dump @@ -44,7 +44,7 @@ if [ -n "$DEBUGDUMP" ]; then fi # Use dump/restore in qa directory for debugging -PATH=".:$PATH" +PATH="$here:$PATH" export PATH #which xfsdump #which xfsrestore @@ -463,13 +463,8 @@ _do_create_dumpdir_fill() { echo "Creating directory system to dump using src/fill." - if mkdir -p $dump_dir - then - : - else - echo "Error: cannot mkdir \"$dump_dir\"" - exit 1 - fi + mkdir -p $dump_dir ||\ + _error "cannot mkdir \"$dump_dir\"" cd $dump_dir $verbose && echo -n "Setup " @@ -598,13 +593,8 @@ _do_create_dump_symlinks() { echo "Creating directory system of symlinks to dump." - if mkdir -p $dump_dir - then - : - else - echo "Error: cannot mkdir \"$dump_dir\"" - exit 1 - fi + mkdir -p $dump_dir ||\ + _error "cannot mkdir \"$dump_dir\"" cd $dump_dir $verbose && echo -n "Setup " @@ -678,6 +668,64 @@ _create_dumpdir_symlinks() _stable_fs } +# +# create hardlinks of form $_fname, $_fname_h1 $_fname_h2 ... +# +_create_hardlinks() +{ + _fname=$1 + _numlinks=$2 + + touch $_fname + _j=1 + while [ $_j -le $_numlinks ]; do + _suffix=_h$_j + _hardlink=$_fname$_suffix + echo "creating hardlink $_hardlink to $_fname" + ln $_fname $_hardlink + _j=`expr $_j + 1` + done +} + +# +# create a set of hardlinks +# create hardlinks of form file1, file1_h1 file1_h2 ... +# create hardlinks of form file2, file2_h1 file2_h2 ... +# create hardlinks of form file3, file3_h1 file3_h2 ... +# +_create_hardset() +{ + _numsets=$1 + _i=1 + while [ $_i -le $_numsets ]; do + _create_hardlinks file$_i 5 + _i=`expr $_i + 1` + done +} + + +_modify_level() +{ + _level=$1 + echo "mod level $_level" >$dump_dir/file$_level +} + +_create_dumpdir_hardlinks() +{ + _numsets=$1 + _wipe_fs + echo "Creating directory system of hardlinks to incrementally dump." + + mkdir -p $dump_dir ||\ + _error "cannot mkdir \"$dump_dir\"" + cd $dump_dir + + _create_hardset $_numsets + + cd $here + _stable_fs +} + # # Filter for ls # Filter out dates on symlinks and char devices @@ -772,6 +820,9 @@ _dir_filter() } +# +# Note: requires a space between option letter and argument +# _parse_args() { OPTIND=0 @@ -806,8 +857,13 @@ _parse_args() -Q) do_quota_check=false ;; + -l) + [ -z "$2" ] && _error "missing argument for -l" + dump_args="$dump_args -l$2" + shift + ;; *) - _error "invalid argument" + _error "invalid argument to common.dump function: $1" ;; esac shift @@ -829,14 +885,14 @@ _do_dump_sub() } # -# Do full level 0 dump +# Do dump to tape # _do_dump() { _parse_args $* echo "Dumping to tape..." - opts="$_dump_debug$dump_args -l0 -f $dumptape -M $media_label -L $session_label $SCRATCH_MNT" + opts="$_dump_debug$dump_args -f $dumptape -M $media_label -L $session_label $SCRATCH_MNT" echo "xfsdump $opts" | _dir_filter xfsdump $opts 2>&1 | tee -a $seq.full | _dump_filter } @@ -856,18 +912,6 @@ _do_dump_min() xfsdump $opts 2>&1 | tee -a $seq.full | _dump_filter } -# -# Do level 1 incremental dump -# -_do_dump_incremental() -{ - _parse_args $* - - echo "Dumping incrementally to tape..." - opts="$_dump_debug$dump_args -l1 -f $dumptape -M $media_label -L $session_label $SCRATCH_MNT" - echo "xfsdump $opts" | _dir_filter - xfsdump $opts 2>&1 | tee -a $seq.full | _dump_filter -} # # Do full dump to file @@ -908,11 +952,8 @@ _do_dump_multi_file() _prepare_restore_dir() { rm -rf $restore_dir - if ! mkdir $restore_dir; then - echo " failed to mkdir $restore_dir" - status=1 - exit - fi + mkdir $restore_dir ||\ + _error "failed to mkdir $restore_dir" } @@ -937,7 +978,7 @@ _do_restore() echo "Restoring from tape..." - opts="$_restore_debug$dump_args -f $dumptape -L $session_label $restore_dir" + opts="$_restore_debug -f $dumptape -L $session_label $restore_dir" echo "xfsrestore $opts" | _dir_filter xfsrestore $opts 2>&1 | tee -a $seq.full | _dump_filter } @@ -952,7 +993,7 @@ _do_restore_min() echo "Restoring from tape..." onemeg=1048576 - opts="$_restore_debug$dump_args -m -b $onemeg -f $dumptape -L $session_label $restore_dir" + opts="$_restore_debug -m -b $onemeg -f $dumptape -L $session_label $restore_dir" echo "xfsrestore $opts" | _dir_filter xfsrestore $opts 2>&1 | tee -a $seq.full | _dump_filter } @@ -966,11 +1007,41 @@ _do_restore_file() _prepare_restore_dir echo "Restoring from file..." - opts="$_restore_debug$dump_args -f $dump_file -L $session_label $restore_dir" + opts="$_restore_debug -f $dump_file -L $session_label $restore_dir" echo "xfsrestore $opts" | _dir_filter xfsrestore $opts 2>&1 | tee -a $seq.full | _dump_filter } +# +# Cumulative restore from a file +# Need to specify the dump level e.g. "-l 0" +# +_do_restore_file_cum() +{ + _parse_args $* + if echo $dump_args | grep '\-l0' >/dev/null; then + _prepare_restore_dir + fi + + echo "Restoring cumumlative from file..." + opts="$_restore_debug -f $dump_file -r $restore_dir" + echo "xfsrestore $opts" | _dir_filter + xfsrestore $opts 2>&1 | tee -a $seq.full | _dump_filter +} + +_do_restore_toc() +{ + echo "Contents of dump ..." + opts="$_restore_debug -f $dump_file -t" + echo "xfsrestore $opts" | _dir_filter + cd $SCRATCH_MNT # for IRIX which needs xfs cwd + xfsrestore $opts 2>&1 | tee -a $seq.full | _dump_filter |\ + $AWK_PROG 'NF != 1 { print; next } + {files = sprintf("%s\n%s", files, $1)} + END { print files | "sort" } ' + cd $here # put back +} + # # Restore the tape from multiple dump files # @@ -989,7 +1060,7 @@ _do_restore_multi_file() done echo "Restoring from file..." - opts="$_restore_debug$dump_args $multi_args -L $session_label $restore_dir" + opts="$_restore_debug $multi_args -L $session_label $restore_dir" echo "xfsrestore $opts" | _dir_filter xfsrestore $opts 2>&1 | tee -a $seq.full | _dump_filter } @@ -1141,8 +1212,8 @@ _check_quota_dumprestore() { uquota=0 gquota=0 - src/feature -U $SCRATCH_DEV && uquota=1 - src/feature -G $SCRATCH_DEV && gquota=1 + $here/src/feature -U $SCRATCH_DEV && uquota=1 + $here/src/feature -G $SCRATCH_DEV && gquota=1 $AWK_PROG -v uquota=$uquota -v gquota=$gquota -v full=$seq.full ' /user quota information/ { @@ -1183,8 +1254,8 @@ _check_quota_diff() { uquota=0 gquota=0 - src/feature -U $SCRATCH_DEV && uquota=1 - src/feature -G $SCRATCH_DEV && gquota=1 + $here/src/feature -U $SCRATCH_DEV && uquota=1 + $here/src/feature -G $SCRATCH_DEV && gquota=1 $AWK_PROG -v uquota=$uquota -v gquota=$gquota ' /Only in RESTORE_DIR: xfsdump_quotas_group/ { diff --git a/group b/group index e7b0a023..4b006b22 100644 --- a/group +++ b/group @@ -118,3 +118,4 @@ ioctl nathans@sgi.com 061 xfsdump ioctl auto 062 attr auto 063 xfsdump auto +064 xfsdump auto