mirror of
https://github.com/linux-apfs/apfstests.git
synced 2026-05-01 15:01:44 -07:00
Stop using ls for comparison with dump/restore for 065 and instead
use find with src/lstat64. Should convert other tests in the future. Merge of master-melb:xfs-cmds:24773a by kenmcd. Stop using ls for comparison with dump/restore for 065 and instead use find with src/lstat64. Should convert other tests in the future.
This commit is contained in:
@@ -26,24 +26,22 @@ trap "rm -f $tmp.*; exit \$status" 0 1 2 3 15
|
||||
. ./common.filter
|
||||
. ./common.dump
|
||||
|
||||
# IRIX "ls -s" uses a block size of 512, for consistincy on linux use
|
||||
# ls --block-size=512 -s <file>
|
||||
[ $HOSTOS == Linux ] && LS_BLOCKSIZE="--block-size=512"
|
||||
|
||||
_my_ls_filter()
|
||||
#
|
||||
# list recursively the directory
|
||||
#
|
||||
# e.g. lstat output: src/lstat64 31056 -rwxr-xr-x 38403,0
|
||||
# Don't print out sizes of directories - which can vary - overwrite with XXX.
|
||||
#
|
||||
_list_dir()
|
||||
{
|
||||
#
|
||||
# Print size and fname.
|
||||
# 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
|
||||
# Filter out toplevel "dumpdir/$" report.
|
||||
grep -v total | grep -v "^$" | sed "s/^[ \t]*//g" | \
|
||||
sed -e 's/.*dumpdir/dumpdir/' |\
|
||||
egrep -v 'housekeeping|dirattr|dirextattr|namreg|state|tree|dumpdir/$|dumpdir:$' |\
|
||||
egrep -v "$restore_dir:"
|
||||
}
|
||||
__dir=$1
|
||||
find $__dir -exec $here/src/lstat64 -t {} \; |\
|
||||
sed -e 's/.*dumpdir/dumpdir/' -e '/^dumpdir /d' |\
|
||||
sed -e 's/.*restoredir/restoredir/' -e '/^restoredir /d' |\
|
||||
egrep -v 'housekeeping|dirattr|dirextattr|namreg|state|tree' |\
|
||||
awk '$3 ~ /^d/ { $2 = "XXX" } {print}' |\
|
||||
sort
|
||||
}
|
||||
|
||||
# real QA test starts here
|
||||
_supported_fs xfs
|
||||
@@ -144,7 +142,7 @@ while [ $i -le $num_dumps ]; do
|
||||
_stable_fs
|
||||
|
||||
echo "Listing of what files we have at level $i:"
|
||||
ls -sRF $LS_BLOCKSIZE $dump_dir | _my_ls_filter | tee $tmp.ls.$i
|
||||
_list_dir $dump_dir | tee $tmp.ls.$i
|
||||
|
||||
dump_file=$tmp.df.level$i
|
||||
_do_dump_file -l $i
|
||||
@@ -168,9 +166,8 @@ while [ $i -le $num_dumps ]; do
|
||||
echo ""
|
||||
echo "restoring from df.level$i"
|
||||
_do_restore_file_cum -l $i
|
||||
echo "ls -sRF restore_dir"
|
||||
ls -sRF $LS_BLOCKSIZE $restore_dir | _my_ls_filter |\
|
||||
_check_quota_file | tee $tmp.restorals.$i
|
||||
echo "list restore_dir"
|
||||
_list_dir $restore_dir | _check_quota_file | tee $tmp.restorals.$i
|
||||
i=`expr $i + 1`
|
||||
done
|
||||
|
||||
|
||||
@@ -1,20 +1,16 @@
|
||||
QA output created by 065
|
||||
Do the incremental dumps
|
||||
Listing of what files we have at level 0:
|
||||
0 addeddir1/
|
||||
0 addeddir2/
|
||||
0 addeddir3/
|
||||
0 addeddir4/
|
||||
8 addedfile0
|
||||
8 addedfile1
|
||||
8 addedfile2
|
||||
8 addedfile3
|
||||
dumpdir/addeddir1:
|
||||
dumpdir/addeddir2:
|
||||
dumpdir/addeddir3:
|
||||
8 addedfile4
|
||||
dumpdir/addeddir4:
|
||||
8 addedfile5
|
||||
dumpdir/addeddir1 XXX drwxr-xr-x 0,0
|
||||
dumpdir/addeddir2 XXX drwxr-xr-x 0,0
|
||||
dumpdir/addeddir3/addedfile4 5 -rw-r--r-- 0,0
|
||||
dumpdir/addeddir3 XXX drwxr-xr-x 0,0
|
||||
dumpdir/addeddir4/addedfile5 5 -rw-r--r-- 0,0
|
||||
dumpdir/addeddir4 XXX drwxr-xr-x 0,0
|
||||
dumpdir/addedfile0 5 -rw-r--r-- 0,0
|
||||
dumpdir/addedfile1 5 -rw-r--r-- 0,0
|
||||
dumpdir/addedfile2 5 -rw-r--r-- 0,0
|
||||
dumpdir/addedfile3 5 -rw-r--r-- 0,0
|
||||
Dumping to file...
|
||||
xfsdump -l0 -f DUMP_FILE -M stress_tape_media -L stress_065 SCRATCH_MNT
|
||||
xfsdump: using file dump (drive_simple) strategy
|
||||
@@ -40,14 +36,12 @@ xfsdump: dump size (non-dir files) : NUM bytes
|
||||
xfsdump: dump complete: SECS seconds elapsed
|
||||
xfsdump: Dump Status: SUCCESS
|
||||
Listing of what files we have at level 1:
|
||||
0 addeddir1/
|
||||
0 addeddir4/
|
||||
8 addedfile0
|
||||
8 addedfile1
|
||||
8 addedfile3
|
||||
dumpdir/addeddir1:
|
||||
dumpdir/addeddir4:
|
||||
8 addedfile5
|
||||
dumpdir/addeddir1 XXX drwxr-xr-x 0,0
|
||||
dumpdir/addeddir4/addedfile5 5 -rw-r--r-- 0,0
|
||||
dumpdir/addeddir4 XXX drwxr-xr-x 0,0
|
||||
dumpdir/addedfile0 5 -rw-r--r-- 0,0
|
||||
dumpdir/addedfile1 5 -rw-r--r-- 0,0
|
||||
dumpdir/addedfile3 5 -rw-r--r-- 0,0
|
||||
Dumping to file...
|
||||
xfsdump -l1 -f DUMP_FILE -M stress_tape_media -L stress_065 SCRATCH_MNT
|
||||
xfsdump: using file dump (drive_simple) strategy
|
||||
@@ -72,14 +66,12 @@ xfsdump: dump size (non-dir files) : NUM bytes
|
||||
xfsdump: dump complete: SECS seconds elapsed
|
||||
xfsdump: Dump Status: SUCCESS
|
||||
Listing of what files we have at level 2:
|
||||
0 addeddir2/
|
||||
0 addeddir6/
|
||||
8 addedfile0
|
||||
8 addedfile2
|
||||
8 addedfile3
|
||||
dumpdir/addeddir2:
|
||||
dumpdir/addeddir6:
|
||||
8 addedfile4
|
||||
dumpdir/addeddir2 XXX drwxr-xr-x 0,0
|
||||
dumpdir/addeddir6/addedfile4 5 -rw-r--r-- 0,0
|
||||
dumpdir/addeddir6 XXX drwxr-xr-x 0,0
|
||||
dumpdir/addedfile0 5 -rw-r--r-- 0,0
|
||||
dumpdir/addedfile2 5 -rw-r--r-- 0,0
|
||||
dumpdir/addedfile3 5 -rw-r--r-- 0,0
|
||||
Dumping to file...
|
||||
xfsdump -l2 -f DUMP_FILE -M stress_tape_media -L stress_065 SCRATCH_MNT
|
||||
xfsdump: using file dump (drive_simple) strategy
|
||||
@@ -104,18 +96,16 @@ xfsdump: dump size (non-dir files) : NUM bytes
|
||||
xfsdump: dump complete: SECS seconds elapsed
|
||||
xfsdump: Dump Status: SUCCESS
|
||||
Listing of what files we have at level 3:
|
||||
0 addeddir2/
|
||||
0 addeddir6/
|
||||
8 addedfile0
|
||||
8 addedfile2
|
||||
8 addedfile3
|
||||
8 linkfile0
|
||||
8 linkfile0_1
|
||||
8 linkfile2
|
||||
8 linkfile64
|
||||
dumpdir/addeddir2:
|
||||
dumpdir/addeddir6:
|
||||
8 addedfile4
|
||||
dumpdir/addeddir2 XXX drwxr-xr-x 0,0
|
||||
dumpdir/addeddir6/addedfile4 5 -rw-r--r-- 0,0
|
||||
dumpdir/addeddir6 XXX drwxr-xr-x 0,0
|
||||
dumpdir/addedfile0 5 -rw-r--r-- 0,0
|
||||
dumpdir/addedfile2 5 -rw-r--r-- 0,0
|
||||
dumpdir/addedfile3 5 -rw-r--r-- 0,0
|
||||
dumpdir/linkfile0_1 5 -rw-r--r-- 0,0
|
||||
dumpdir/linkfile0 5 -rw-r--r-- 0,0
|
||||
dumpdir/linkfile2 5 -rw-r--r-- 0,0
|
||||
dumpdir/linkfile64 5 -rw-r--r-- 0,0
|
||||
Dumping to file...
|
||||
xfsdump -l3 -f DUMP_FILE -M stress_tape_media -L stress_065 SCRATCH_MNT
|
||||
xfsdump: using file dump (drive_simple) strategy
|
||||
@@ -140,14 +130,12 @@ xfsdump: dump size (non-dir files) : NUM bytes
|
||||
xfsdump: dump complete: SECS seconds elapsed
|
||||
xfsdump: Dump Status: SUCCESS
|
||||
Listing of what files we have at level 4:
|
||||
0 addeddir2/
|
||||
0 addeddir6/
|
||||
8 addedfile0
|
||||
8 addedfile3
|
||||
8 linkfile0_1
|
||||
8 linkfile2
|
||||
dumpdir/addeddir2:
|
||||
dumpdir/addeddir6:
|
||||
dumpdir/addeddir2 XXX drwxr-xr-x 0,0
|
||||
dumpdir/addeddir6 XXX drwxr-xr-x 0,0
|
||||
dumpdir/addedfile0 5 -rw-r--r-- 0,0
|
||||
dumpdir/addedfile3 5 -rw-r--r-- 0,0
|
||||
dumpdir/linkfile0_1 5 -rw-r--r-- 0,0
|
||||
dumpdir/linkfile2 5 -rw-r--r-- 0,0
|
||||
Dumping to file...
|
||||
xfsdump -l4 -f DUMP_FILE -M stress_tape_media -L stress_065 SCRATCH_MNT
|
||||
xfsdump: using file dump (drive_simple) strategy
|
||||
@@ -172,10 +160,10 @@ xfsdump: dump size (non-dir files) : NUM bytes
|
||||
xfsdump: dump complete: SECS seconds elapsed
|
||||
xfsdump: Dump Status: SUCCESS
|
||||
Listing of what files we have at level 5:
|
||||
8 addedfile6
|
||||
8 linkfile6_1
|
||||
8 linkfile6_2
|
||||
8 linkfile6_3
|
||||
dumpdir/addedfile6 5 -rw-r--r-- 0,0
|
||||
dumpdir/linkfile6_1 5 -rw-r--r-- 0,0
|
||||
dumpdir/linkfile6_2 5 -rw-r--r-- 0,0
|
||||
dumpdir/linkfile6_3 5 -rw-r--r-- 0,0
|
||||
Dumping to file...
|
||||
xfsdump -l5 -f DUMP_FILE -M stress_tape_media -L stress_065 SCRATCH_MNT
|
||||
xfsdump: using file dump (drive_simple) strategy
|
||||
@@ -200,10 +188,10 @@ xfsdump: dump size (non-dir files) : NUM bytes
|
||||
xfsdump: dump complete: SECS seconds elapsed
|
||||
xfsdump: Dump Status: SUCCESS
|
||||
Listing of what files we have at level 6:
|
||||
8 addedfile6_mv
|
||||
8 linkfile6_mv_1
|
||||
8 linkfile6_mv_2
|
||||
8 linkfile6_mv_3
|
||||
dumpdir/addedfile6_mv 5 -rw-r--r-- 0,0
|
||||
dumpdir/linkfile6_mv_1 5 -rw-r--r-- 0,0
|
||||
dumpdir/linkfile6_mv_2 5 -rw-r--r-- 0,0
|
||||
dumpdir/linkfile6_mv_3 5 -rw-r--r-- 0,0
|
||||
Dumping to file...
|
||||
xfsdump -l6 -f DUMP_FILE -M stress_tape_media -L stress_065 SCRATCH_MNT
|
||||
xfsdump: using file dump (drive_simple) strategy
|
||||
@@ -228,10 +216,10 @@ xfsdump: dump size (non-dir files) : NUM bytes
|
||||
xfsdump: dump complete: SECS seconds elapsed
|
||||
xfsdump: Dump Status: SUCCESS
|
||||
Listing of what files we have at level 7:
|
||||
8 addedfile6_mv
|
||||
8 linkfile6_mv_1
|
||||
8 linkfile6_mv_2
|
||||
8 linkfile6_mv_3
|
||||
dumpdir/addedfile6_mv 5 -rw-r--r-- 0,0
|
||||
dumpdir/linkfile6_mv_1 5 -rw-r--r-- 0,0
|
||||
dumpdir/linkfile6_mv_2 5 -rw-r--r-- 0,0
|
||||
dumpdir/linkfile6_mv_3 5 -rw-r--r-- 0,0
|
||||
Dumping to file...
|
||||
xfsdump -l7 -f DUMP_FILE -M stress_tape_media -L stress_065 SCRATCH_MNT
|
||||
xfsdump: using file dump (drive_simple) strategy
|
||||
@@ -256,10 +244,10 @@ xfsdump: dump size (non-dir files) : NUM bytes
|
||||
xfsdump: dump complete: SECS seconds elapsed
|
||||
xfsdump: Dump Status: SUCCESS
|
||||
Listing of what files we have at level 8:
|
||||
8 addedfile6_mv
|
||||
8 linkfile6_mv_1
|
||||
8 linkfile6_mv_2
|
||||
8 linkfile6_mv_3
|
||||
dumpdir/addedfile6_mv 5 -rw-r--r-- 0,0
|
||||
dumpdir/linkfile6_mv_1 5 -rw-r--r-- 0,0
|
||||
dumpdir/linkfile6_mv_2 5 -rw-r--r-- 0,0
|
||||
dumpdir/linkfile6_mv_3 5 -rw-r--r-- 0,0
|
||||
Dumping to file...
|
||||
xfsdump -l8 -f DUMP_FILE -M stress_tape_media -L stress_065 SCRATCH_MNT
|
||||
xfsdump: using file dump (drive_simple) strategy
|
||||
@@ -578,21 +566,17 @@ xfsrestore: directory post-processing
|
||||
xfsrestore: restoring non-directory files
|
||||
xfsrestore: restore complete: SECS seconds elapsed
|
||||
xfsrestore: Restore Status: SUCCESS
|
||||
ls -sRF restore_dir
|
||||
0 addeddir1/
|
||||
0 addeddir2/
|
||||
0 addeddir3/
|
||||
0 addeddir4/
|
||||
8 addedfile0
|
||||
8 addedfile1
|
||||
8 addedfile2
|
||||
8 addedfile3
|
||||
dumpdir/addeddir1:
|
||||
dumpdir/addeddir2:
|
||||
dumpdir/addeddir3:
|
||||
8 addedfile4
|
||||
dumpdir/addeddir4:
|
||||
8 addedfile5
|
||||
list restore_dir
|
||||
dumpdir/addeddir1 XXX drwxr-xr-x 0,0
|
||||
dumpdir/addeddir2 XXX drwxr-xr-x 0,0
|
||||
dumpdir/addeddir3/addedfile4 5 -rw-r--r-- 0,0
|
||||
dumpdir/addeddir3 XXX drwxr-xr-x 0,0
|
||||
dumpdir/addeddir4/addedfile5 5 -rw-r--r-- 0,0
|
||||
dumpdir/addeddir4 XXX drwxr-xr-x 0,0
|
||||
dumpdir/addedfile0 5 -rw-r--r-- 0,0
|
||||
dumpdir/addedfile1 5 -rw-r--r-- 0,0
|
||||
dumpdir/addedfile2 5 -rw-r--r-- 0,0
|
||||
dumpdir/addedfile3 5 -rw-r--r-- 0,0
|
||||
|
||||
restoring from df.level1
|
||||
Restoring cumumlative from file...
|
||||
@@ -619,15 +603,13 @@ xfsrestore: directory post-processing
|
||||
xfsrestore: restoring non-directory files
|
||||
xfsrestore: restore complete: SECS seconds elapsed
|
||||
xfsrestore: Restore Status: SUCCESS
|
||||
ls -sRF restore_dir
|
||||
0 addeddir1/
|
||||
0 addeddir4/
|
||||
8 addedfile0
|
||||
8 addedfile1
|
||||
8 addedfile3
|
||||
dumpdir/addeddir1:
|
||||
dumpdir/addeddir4:
|
||||
8 addedfile5
|
||||
list restore_dir
|
||||
dumpdir/addeddir1 XXX drwxr-xr-x 0,0
|
||||
dumpdir/addeddir4/addedfile5 5 -rw-r--r-- 0,0
|
||||
dumpdir/addeddir4 XXX drwxr-xr-x 0,0
|
||||
dumpdir/addedfile0 5 -rw-r--r-- 0,0
|
||||
dumpdir/addedfile1 5 -rw-r--r-- 0,0
|
||||
dumpdir/addedfile3 5 -rw-r--r-- 0,0
|
||||
|
||||
restoring from df.level2
|
||||
Restoring cumumlative from file...
|
||||
@@ -654,15 +636,13 @@ xfsrestore: directory post-processing
|
||||
xfsrestore: restoring non-directory files
|
||||
xfsrestore: restore complete: SECS seconds elapsed
|
||||
xfsrestore: Restore Status: SUCCESS
|
||||
ls -sRF restore_dir
|
||||
0 addeddir2/
|
||||
0 addeddir6/
|
||||
8 addedfile0
|
||||
8 addedfile2
|
||||
8 addedfile3
|
||||
dumpdir/addeddir2:
|
||||
dumpdir/addeddir6:
|
||||
8 addedfile4
|
||||
list restore_dir
|
||||
dumpdir/addeddir2 XXX drwxr-xr-x 0,0
|
||||
dumpdir/addeddir6/addedfile4 5 -rw-r--r-- 0,0
|
||||
dumpdir/addeddir6 XXX drwxr-xr-x 0,0
|
||||
dumpdir/addedfile0 5 -rw-r--r-- 0,0
|
||||
dumpdir/addedfile2 5 -rw-r--r-- 0,0
|
||||
dumpdir/addedfile3 5 -rw-r--r-- 0,0
|
||||
|
||||
restoring from df.level3
|
||||
Restoring cumumlative from file...
|
||||
@@ -689,19 +669,17 @@ xfsrestore: directory post-processing
|
||||
xfsrestore: restoring non-directory files
|
||||
xfsrestore: restore complete: SECS seconds elapsed
|
||||
xfsrestore: Restore Status: SUCCESS
|
||||
ls -sRF restore_dir
|
||||
0 addeddir2/
|
||||
0 addeddir6/
|
||||
8 addedfile0
|
||||
8 addedfile2
|
||||
8 addedfile3
|
||||
8 linkfile0
|
||||
8 linkfile0_1
|
||||
8 linkfile2
|
||||
8 linkfile64
|
||||
dumpdir/addeddir2:
|
||||
dumpdir/addeddir6:
|
||||
8 addedfile4
|
||||
list restore_dir
|
||||
dumpdir/addeddir2 XXX drwxr-xr-x 0,0
|
||||
dumpdir/addeddir6/addedfile4 5 -rw-r--r-- 0,0
|
||||
dumpdir/addeddir6 XXX drwxr-xr-x 0,0
|
||||
dumpdir/addedfile0 5 -rw-r--r-- 0,0
|
||||
dumpdir/addedfile2 5 -rw-r--r-- 0,0
|
||||
dumpdir/addedfile3 5 -rw-r--r-- 0,0
|
||||
dumpdir/linkfile0_1 5 -rw-r--r-- 0,0
|
||||
dumpdir/linkfile0 5 -rw-r--r-- 0,0
|
||||
dumpdir/linkfile2 5 -rw-r--r-- 0,0
|
||||
dumpdir/linkfile64 5 -rw-r--r-- 0,0
|
||||
|
||||
restoring from df.level4
|
||||
Restoring cumumlative from file...
|
||||
@@ -728,15 +706,13 @@ xfsrestore: directory post-processing
|
||||
xfsrestore: restoring non-directory files
|
||||
xfsrestore: restore complete: SECS seconds elapsed
|
||||
xfsrestore: Restore Status: SUCCESS
|
||||
ls -sRF restore_dir
|
||||
0 addeddir2/
|
||||
0 addeddir6/
|
||||
8 addedfile0
|
||||
8 addedfile3
|
||||
8 linkfile0_1
|
||||
8 linkfile2
|
||||
dumpdir/addeddir2:
|
||||
dumpdir/addeddir6:
|
||||
list restore_dir
|
||||
dumpdir/addeddir2 XXX drwxr-xr-x 0,0
|
||||
dumpdir/addeddir6 XXX drwxr-xr-x 0,0
|
||||
dumpdir/addedfile0 5 -rw-r--r-- 0,0
|
||||
dumpdir/addedfile3 5 -rw-r--r-- 0,0
|
||||
dumpdir/linkfile0_1 5 -rw-r--r-- 0,0
|
||||
dumpdir/linkfile2 5 -rw-r--r-- 0,0
|
||||
|
||||
restoring from df.level5
|
||||
Restoring cumumlative from file...
|
||||
@@ -763,11 +739,11 @@ xfsrestore: directory post-processing
|
||||
xfsrestore: restoring non-directory files
|
||||
xfsrestore: restore complete: SECS seconds elapsed
|
||||
xfsrestore: Restore Status: SUCCESS
|
||||
ls -sRF restore_dir
|
||||
8 addedfile6
|
||||
8 linkfile6_1
|
||||
8 linkfile6_2
|
||||
8 linkfile6_3
|
||||
list restore_dir
|
||||
dumpdir/addedfile6 5 -rw-r--r-- 0,0
|
||||
dumpdir/linkfile6_1 5 -rw-r--r-- 0,0
|
||||
dumpdir/linkfile6_2 5 -rw-r--r-- 0,0
|
||||
dumpdir/linkfile6_3 5 -rw-r--r-- 0,0
|
||||
|
||||
restoring from df.level6
|
||||
Restoring cumumlative from file...
|
||||
@@ -794,11 +770,11 @@ xfsrestore: directory post-processing
|
||||
xfsrestore: restoring non-directory files
|
||||
xfsrestore: restore complete: SECS seconds elapsed
|
||||
xfsrestore: Restore Status: SUCCESS
|
||||
ls -sRF restore_dir
|
||||
8 addedfile6_mv
|
||||
8 linkfile6_mv_1
|
||||
8 linkfile6_mv_2
|
||||
8 linkfile6_mv_3
|
||||
list restore_dir
|
||||
dumpdir/addedfile6_mv 5 -rw-r--r-- 0,0
|
||||
dumpdir/linkfile6_mv_1 5 -rw-r--r-- 0,0
|
||||
dumpdir/linkfile6_mv_2 5 -rw-r--r-- 0,0
|
||||
dumpdir/linkfile6_mv_3 5 -rw-r--r-- 0,0
|
||||
|
||||
restoring from df.level7
|
||||
Restoring cumumlative from file...
|
||||
@@ -825,11 +801,11 @@ xfsrestore: directory post-processing
|
||||
xfsrestore: restoring non-directory files
|
||||
xfsrestore: restore complete: SECS seconds elapsed
|
||||
xfsrestore: Restore Status: SUCCESS
|
||||
ls -sRF restore_dir
|
||||
8 addedfile6_mv
|
||||
8 linkfile6_mv_1
|
||||
8 linkfile6_mv_2
|
||||
8 linkfile6_mv_3
|
||||
list restore_dir
|
||||
dumpdir/addedfile6_mv 5 -rw-r--r-- 0,0
|
||||
dumpdir/linkfile6_mv_1 5 -rw-r--r-- 0,0
|
||||
dumpdir/linkfile6_mv_2 5 -rw-r--r-- 0,0
|
||||
dumpdir/linkfile6_mv_3 5 -rw-r--r-- 0,0
|
||||
|
||||
restoring from df.level8
|
||||
Restoring cumumlative from file...
|
||||
@@ -856,11 +832,11 @@ xfsrestore: directory post-processing
|
||||
xfsrestore: restoring non-directory files
|
||||
xfsrestore: restore complete: SECS seconds elapsed
|
||||
xfsrestore: Restore Status: SUCCESS
|
||||
ls -sRF restore_dir
|
||||
8 addedfile6_mv
|
||||
8 linkfile6_mv_1
|
||||
8 linkfile6_mv_2
|
||||
8 linkfile6_mv_3
|
||||
list restore_dir
|
||||
dumpdir/addedfile6_mv 5 -rw-r--r-- 0,0
|
||||
dumpdir/linkfile6_mv_1 5 -rw-r--r-- 0,0
|
||||
dumpdir/linkfile6_mv_2 5 -rw-r--r-- 0,0
|
||||
dumpdir/linkfile6_mv_3 5 -rw-r--r-- 0,0
|
||||
|
||||
Do the ls comparison
|
||||
Comparing ls of FS with restored FS at level 0
|
||||
|
||||
+55
-17
@@ -16,6 +16,7 @@
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
#include <unistd.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
@@ -45,24 +46,51 @@ timesince(long timesec)
|
||||
d_since, h_since, m_since, s_since);
|
||||
}
|
||||
|
||||
void
|
||||
usage(void)
|
||||
{
|
||||
fprintf(stderr, "Usage: lstat64 [-t] filename ...\n");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
int
|
||||
main(int argc, char **argv)
|
||||
{
|
||||
struct stat64 sbuf;
|
||||
char mode[10];
|
||||
int i;
|
||||
int i, c;
|
||||
int terse_flag = 0;
|
||||
|
||||
while ((c = getopt(argc, argv, "t")) != EOF) {
|
||||
switch (c) {
|
||||
case 't':
|
||||
terse_flag = 1;
|
||||
break;
|
||||
|
||||
case '?':
|
||||
usage();
|
||||
}
|
||||
}
|
||||
if (optind == argc) {
|
||||
usage();
|
||||
}
|
||||
|
||||
time(&timebuf);
|
||||
|
||||
for (i = 1; i < argc; i++) {
|
||||
for (i = optind; i < argc; i++) {
|
||||
|
||||
if( lstat64(argv[i], &sbuf) < 0) {
|
||||
perror(argv[i]);
|
||||
continue;
|
||||
}
|
||||
|
||||
printf(" File: \"%s\"\n", argv[i]);
|
||||
printf(" Size: %-10llu", (unsigned long long)sbuf.st_size);
|
||||
if (terse_flag) {
|
||||
printf("%s %llu ", argv[i], (unsigned long long)sbuf.st_size);
|
||||
}
|
||||
else {
|
||||
printf(" File: \"%s\"\n", argv[i]);
|
||||
printf(" Size: %-10llu", (unsigned long long)sbuf.st_size);
|
||||
}
|
||||
|
||||
strcpy(mode,"----------");
|
||||
if (sbuf.st_mode & (S_IEXEC>>6))
|
||||
@@ -90,41 +118,55 @@ main(int argc, char **argv)
|
||||
if (sbuf.st_mode & S_ISUID)
|
||||
mode[3] = 's';
|
||||
|
||||
printf(" Filetype: ");
|
||||
if (!terse_flag)
|
||||
printf(" Filetype: ");
|
||||
switch (sbuf.st_mode & S_IFMT) {
|
||||
case S_IFSOCK:
|
||||
puts("Socket");
|
||||
if (!terse_flag)
|
||||
puts("Socket");
|
||||
mode[0] = 's';
|
||||
break;
|
||||
case S_IFDIR:
|
||||
puts("Directory");
|
||||
if (!terse_flag)
|
||||
puts("Directory");
|
||||
mode[0] = 'd';
|
||||
break;
|
||||
case S_IFCHR:
|
||||
puts("Character Device");
|
||||
if (!terse_flag)
|
||||
puts("Character Device");
|
||||
mode[0] = 'c';
|
||||
break;
|
||||
case S_IFBLK:
|
||||
puts("Block Device");
|
||||
if (!terse_flag)
|
||||
puts("Block Device");
|
||||
mode[0] = 'b';
|
||||
break;
|
||||
case S_IFREG:
|
||||
puts("Regular File");
|
||||
if (!terse_flag)
|
||||
puts("Regular File");
|
||||
mode[0] = '-';
|
||||
break;
|
||||
case S_IFLNK:
|
||||
puts("Symbolic Link");
|
||||
if (!terse_flag)
|
||||
puts("Symbolic Link");
|
||||
mode[0] = 'l';
|
||||
break;
|
||||
case S_IFIFO:
|
||||
puts("Fifo File");
|
||||
if (!terse_flag)
|
||||
puts("Fifo File");
|
||||
mode[0] = 'f';
|
||||
break;
|
||||
default:
|
||||
puts("Unknown");
|
||||
if (!terse_flag)
|
||||
puts("Unknown");
|
||||
mode[0] = '?';
|
||||
}
|
||||
|
||||
if (terse_flag) {
|
||||
printf("%s %d,%d\n", mode, (int)sbuf.st_uid, (int)sbuf.st_gid);
|
||||
continue;
|
||||
}
|
||||
|
||||
printf(" Mode: (%04o/%s)", (unsigned int)(sbuf.st_mode & 07777), mode);
|
||||
printf(" Uid: (%d)", (int)sbuf.st_uid);
|
||||
printf(" Gid: (%d)\n", (int)sbuf.st_gid);
|
||||
@@ -150,9 +192,5 @@ main(int argc, char **argv)
|
||||
if (i+1 < argc)
|
||||
printf("\n");
|
||||
}
|
||||
if (i == 1) {
|
||||
fprintf(stderr, "Usage: lstat64 filename...\n");
|
||||
exit(1);
|
||||
}
|
||||
exit(0);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user