}
#
+# Parse xfsdump arguments.
# Note: requires a space between option letter and argument
#
-_parse_args()
+_parse_dump_args()
{
OPTIND=0
dump_args=""
session_label=$2
shift
;;
- -o|-D|-F)
- dump_args="$dump_args $1"
- ;;
--multi)
+ [ -z "$2" ] && _fail "missing argument for --multi"
multi=$2
shift
;;
--no-check-quota)
do_quota_check=false
;;
+ -o|-D|-F)
+ dump_args="$dump_args $1"
+ ;;
-l|-d)
[ -z "$2" ] && _fail "missing argument for $1"
dump_args="$dump_args $1$2"
done
}
+#
+# Parse xfsrestore arguments.
+# Note: requires a space between option letter and argument
+#
+_parse_restore_args()
+{
+ OPTIND=0
+ restore_args=""
+ while [ $# -gt 0 ]
+ do
+ case $1
+ in
+ -f)
+ [ -z "$2" ] && _fail "missing argument for -f"
+ dumptape=$2
+ dump_file=$2
+ shift
+ ;;
+ -L)
+ [ -z "$2" ] && _fail "missing argument for -L"
+ session_label=$2
+ shift
+ ;;
+ --multi)
+ [ -z "$2" ] && _fail "missing argument for --multi"
+ multi=$2
+ shift
+ ;;
+ --check-quota)
+ do_quota_check=true
+ ;;
+ --no-check-quota)
+ do_quota_check=false
+ ;;
+ *)
+ _fail "invalid argument to common.dump function: $1"
+ ;;
+ esac
+ shift
+ done
+}
+
#
# Dump a subdir
#
_do_dump_sub()
{
- _parse_args $*
+ _parse_dump_args $*
echo "Dumping to tape..."
opts="$_dump_debug$dump_args -s $dump_sdir -f $dumptape -M $media_label -L $session_label $SCRATCH_MNT"
#
_do_dump()
{
- _parse_args $*
+ _parse_dump_args $*
echo "Dumping to tape..."
opts="$_dump_debug$dump_args -f $dumptape -M $media_label -L $session_label $SCRATCH_MNT"
#
_do_dump_min()
{
- _parse_args $*
+ _parse_dump_args $*
echo "Dumping to tape..."
onemeg=1048576
#
_do_dump_file()
{
- _parse_args $*
+ _parse_dump_args $*
echo "Dumping to file..."
opts="$_dump_debug$dump_args -f $dump_file -M $media_label -L $session_label $SCRATCH_MNT"
#
_do_dump_multi_file()
{
- _parse_args "$@"
+ _parse_dump_args $*
multi_args=""
#
_do_restore()
{
- _parse_args $*
+ _parse_restore_args $*
_prepare_restore
-
echo "Restoring from tape..."
- opts="$_restore_debug -f $dumptape -L $session_label $restore_dir"
+ opts="$_restore_debug$restore_args -f $dumptape -L $session_label $restore_dir"
echo "xfsrestore $opts" | _dir_filter
$XFSRESTORE_PROG $opts 2>&1 | tee -a $here/$seq.full | _dump_filter
}
#
_do_restore_min()
{
- _parse_args $*
+ _parse_restore_args $*
_prepare_restore
echo "Restoring from tape..."
onemeg=1048576
- opts="$_restore_debug -m -b $onemeg -f $dumptape -L $session_label $restore_dir"
+ opts="$_restore_debug$restore_args -m -b $onemeg -f $dumptape -L $session_label $restore_dir"
echo "xfsrestore $opts" | _dir_filter
$XFSRESTORE_PROG $opts 2>&1 | tee -a $here/$seq.full | _dump_filter
}
#
_do_restore_file()
{
- _parse_args $*
+ _parse_restore_args $*
_prepare_restore_dir
echo "Restoring from file..."
- opts="$_restore_debug -f $dump_file -L $session_label $restore_dir"
+ opts="$_restore_debug$restore_args -f $dump_file -L $session_label $restore_dir"
echo "xfsrestore $opts" | _dir_filter
$XFSRESTORE_PROG $opts 2>&1 | tee -a $here/$seq.full | _dump_filter
}
#
_do_restore_file_cum()
{
- _parse_args $*
+ _parse_restore_args $*
echo "Restoring cumumlative from file..."
- opts="$_restore_debug -f $dump_file -r $restore_dir"
+ opts="$_restore_debug$restore_args -f $dump_file -r $restore_dir"
echo "xfsrestore $opts" | _dir_filter
$XFSRESTORE_PROG $opts 2>&1 | tee -a $here/$seq.full | _dump_filter
}
_do_restore_toc()
{
- _parse_args $*
+ _parse_restore_args $*
echo "Contents of dump ..."
- opts="$_restore_debug -f $dump_file -t"
+ opts="$_restore_debug$restore_args -f $dump_file -t"
echo "xfsrestore $opts" | _dir_filter
cd $SCRATCH_MNT # for IRIX which needs xfs cwd
$XFSRESTORE_PROG $opts 2>&1 | tee -a $here/$seq.full | _dump_filter_main |\
#
_do_restore_multi_file()
{
- _parse_args "$@"
+ _parse_restore_args $*
_prepare_restore_dir
multi_args=""
done
echo "Restoring from file..."
- opts="$_restore_debug $multi_args -L $session_label $restore_dir"
+ opts="$_restore_debug$restore_args $multi_args -L $session_label $restore_dir"
echo "xfsrestore $opts" | _dir_filter
$XFSRESTORE_PROG $opts 2>&1 | tee -a $here/$seq.full | _dump_filter
}
#
# Do xfsdump piped into xfsrestore - xfsdump | xfsrestore
+# Pass dump options in $1 and restore options in $2, if required. e.g.:
+# _do_dump_restore "-o -F" "-R"
+# _do_dump_restore "" "-R"
#
# Use -s as we want to dump and restore to the same xfs partition
#
_do_dump_restore()
{
- _parse_args $*
+ _parse_dump_args $1
+ _parse_restore_args $2
_prepare_restore_dir
echo "xfsdump|xfsrestore ..."
- restore_opts="$_restore_debug - $restore_dir"
+ restore_opts="$_restore_debug$restore_args - $restore_dir"
dump_opts="$_dump_debug$dump_args -s $dump_sdir - $SCRATCH_MNT"
echo "xfsdump $dump_opts | xfsrestore $restore_opts" | _dir_filter
$XFSDUMP_PROG $dump_opts 2>$tmp.dump.mlog | $XFSRESTORE_PROG $restore_opts 2>&1 | tee -a $here/$seq.full | _dump_filter