-#!/bin/sh
+#!@SHELL@
#
# Amanda, The Advanced Maryland Automatic Network Disk Archiver
# Copyright (c) 1991-1998 University of Maryland at College Park
SUF=
fi
+if [ $# -lt 1 ]
+then
+ echo "Usage: amdump config [host [disk...]...]" 1>&2
+ exit 1
+fi
+
+exit_status=0;
+
conf=$1
if [ ! -d $confdir/$conf ]; then
- echo "amdump$SUF: could not find directory $confdir/$conf"
+ echo "amdump$SUF: could not find directory $confdir/$conf" 1>&2
exit 1
fi
+shift
cd $confdir/$conf || exit 1
-logdir=`amgetconf$SUF $conf logdir`
+logdir=`amgetconf$SUF $conf logdir "$@"`
[ $? -ne 0 ] && exit 1
errfile=$logdir/amdump
-tapecycle=`amgetconf$SUF $conf tapecycle`
+tapecycle=`amgetconf$SUF $conf tapecycle "$@"`
[ $? -ne 0 ] && exit 1
-dumpuser=`amgetconf$SUF $conf dumpuser`
+dumpuser=`amgetconf$SUF $conf dumpuser "$@"`
[ $? -ne 0 ] && exit 1
runuser=`{ whoami ; } 2>/dev/null`
fi
fi
-if [ $runuser != $dumpuser ]; then
- echo "amdump: must be run as user $dumpuser, not $runuser"
- exit 1
-fi
+#if [ $runuser != $dumpuser ]; then
+# echo "amdump: must be run as user $dumpuser, not $runuser" 1>&2
+# exit 1
+#fi
if test -f hold; then
- echo "amdump: waiting for hold file to be removed" >&2
+ echo "amdump: waiting for hold file to be removed" 1>&2
while test -f hold; do
sleep 60
done
fi
if test -f $errfile || test -f $logdir/log; then
- echo "amdump: amdump or amflush is already running, or you must run amcleanup" >&2
+ echo "amdump: amdump or amflush is already running, or you must run amcleanup" 1>&2
exit 1
fi
umask 077
+exit_code=0
# Plan and drive the dumps.
-exec </dev/null >$errfile 2>&1
+#exec </dev/null >$errfile 2>&1
+touch $errfile
+exit_code=$?
+[ $exit_code -ne 0 ] && exit_status=$exit_code
+exec </dev/null 2>>$errfile 1>&2
+exit_code=$?
+[ $exit_code -ne 0 ] && exit_status=$exit_code
echo "amdump: start at `date`"
echo "amdump: datestamp `date +%Y%m%d`"
-$libexecdir/planner$SUF "$@" | $libexecdir/driver$SUF $conf
+echo "amdump: starttime `date +%Y%m%d%H%M%S`"
+$libexecdir/planner$SUF $conf "$@" | $libexecdir/driver$SUF $conf "$@"
+exit_code=$?
+[ $exit_code -ne 0 ] && exit_status=$exit_code
echo "amdump: end at `date`"
# Send out a report on the dumps.
-exec </dev/null >/dev/null 2>&1
-$sbindir/amreport$SUF $conf
+$sbindir/amreport$SUF $conf "$@"
+exit_code=$?
+[ $exit_code -ne 0 ] && exit_status=$exit_code
# Roll the log file to its datestamped name.
-$libexecdir/amlogroll$SUF $conf
+$libexecdir/amlogroll$SUF $conf "$@"
+exit_code=$?
+[ $exit_code -ne 0 ] && exit_status=$exit_code
+
+# Trim the log file to those for dumps that still exist.
+$libexecdir/amtrmlog$SUF $conf "$@"
+exit_code=$?
+[ $exit_code -ne 0 ] && exit_status=$exit_code
+
+# Trim the index file to those for dumps that still exist.
+$libexecdir/amtrmidx$SUF $conf "$@"
+exit_code=$?
+[ $exit_code -ne 0 ] && exit_status=$exit_code
# Keep a debug log through the tapecycle plus a couple of days.
maxdays=`expr $tapecycle + 2`
while [ $days -ge 2 ]; do
ndays=`expr $days - 1`
mv $errfile.$ndays $errfile.$days
+ exit_code=$?
+ echo $exit_code
+ [ $exit_code -ne 0 ] && exit_status=$exit_code
days=$ndays
done
mv $errfile $errfile.1
+exit_code=$?
+[ $exit_code -ne 0 ] && exit_status=$exit_code
-# Trim the log file to those for dumps that still exist.
-$libexecdir/amtrmlog$SUF $conf
-
-# Trim the index file to those for dumps that still exist.
-$libexecdir/amtrmidx$SUF $conf
-
-exit 0
+exit $exit_status