|
Packit |
23ab03 |
#! @SHELL@
|
|
Packit |
23ab03 |
#
|
|
Packit |
23ab03 |
# check tapelist against database and vice versa
|
|
Packit |
23ab03 |
#
|
|
Packit |
23ab03 |
|
|
Packit |
23ab03 |
prefix="@prefix@"
|
|
Packit |
23ab03 |
exec_prefix="@exec_prefix@"
|
|
Packit |
23ab03 |
sbindir="@sbindir@"
|
|
Packit |
23ab03 |
amlibexecdir="@amlibexecdir@"
|
|
Packit |
23ab03 |
. "${amlibexecdir}/amanda-sh-lib.sh"
|
|
Packit |
23ab03 |
|
|
Packit |
23ab03 |
ConfigDir=@CONFIG_DIR@
|
|
Packit |
23ab03 |
|
|
Packit |
23ab03 |
# add sbin and ucb dirs
|
|
Packit |
23ab03 |
PATH="$PATH:/usr/sbin:/sbin:/usr/ucb"
|
|
Packit |
23ab03 |
export PATH
|
|
Packit |
23ab03 |
|
|
Packit |
23ab03 |
Program=`basename $0`
|
|
Packit |
23ab03 |
|
|
Packit |
23ab03 |
log () {
|
|
Packit |
23ab03 |
echo 1>&2 "$@"
|
|
Packit |
23ab03 |
return 0
|
|
Packit |
23ab03 |
}
|
|
Packit |
23ab03 |
|
|
Packit |
23ab03 |
Config=$1
|
|
Packit |
23ab03 |
if [ "$Config" = "" ]; then
|
|
Packit |
23ab03 |
log "usage: ${Program} <config>"
|
|
Packit |
23ab03 |
exit 1
|
|
Packit |
23ab03 |
fi
|
|
Packit |
23ab03 |
shift;
|
|
Packit |
23ab03 |
|
|
Packit |
23ab03 |
#
|
|
Packit |
23ab03 |
# Check if the configuration directory exists. Make sure that the
|
|
Packit |
23ab03 |
# necessary files can be found, such as amanda.conf and tapelist.
|
|
Packit |
23ab03 |
#
|
|
Packit |
23ab03 |
if [ ! -d ${ConfigDir}/${Config} ]; then
|
|
Packit |
23ab03 |
log "${Program}: configuration directory ${ConfigDir}/${Config} does not exist."
|
|
Packit |
23ab03 |
exit 1
|
|
Packit |
23ab03 |
fi
|
|
Packit |
23ab03 |
(cd ${ConfigDir}/${Config} >/dev/null 2>&1) || exit $?
|
|
Packit |
23ab03 |
cd ${ConfigDir}/${Config}
|
|
Packit |
23ab03 |
if [ ! -r amanda.conf ]; then
|
|
Packit |
23ab03 |
log "${Program}: amanda.conf not found or is not readable in ${ConfigDir}."
|
|
Packit |
23ab03 |
exit 1
|
|
Packit |
23ab03 |
fi
|
|
Packit |
23ab03 |
|
|
Packit |
23ab03 |
# Get the location and name of the tapelist filename. If tapelist is not
|
|
Packit |
23ab03 |
# specified in the amanda.conf file, then use tapelist in the config
|
|
Packit |
23ab03 |
# directory.
|
|
Packit |
23ab03 |
TapeList=`amgetconf${SUF} $Config tapelist "@$"`
|
|
Packit |
23ab03 |
if [ ! "$TapeList" ]; then
|
|
Packit |
23ab03 |
TapeList="$ConfigDir/$Config/tapelist"
|
|
Packit |
23ab03 |
fi
|
|
Packit |
23ab03 |
if [ ! -r $TapeList ]; then
|
|
Packit |
23ab03 |
log "${Program}: $TapeList not found or is not readable."
|
|
Packit |
23ab03 |
exit 1
|
|
Packit |
23ab03 |
fi
|
|
Packit |
23ab03 |
|
|
Packit |
23ab03 |
Amadmin=$sbindir/amadmin
|
|
Packit |
23ab03 |
|
|
Packit |
23ab03 |
[ ! -f $Amadmin ] \
|
|
Packit |
23ab03 |
&& echo `_ '%s was not found' $Amadmin` >&2 \
|
|
Packit |
23ab03 |
&& exit 1
|
|
Packit |
23ab03 |
[ ! -x $Amadmin ] \
|
|
Packit |
23ab03 |
&& echo `_ '%s is not executable' $Amadmin` >&2 \
|
|
Packit |
23ab03 |
&& exit 1
|
|
Packit |
23ab03 |
|
|
Packit |
23ab03 |
$Amadmin $Config export "$@"\
|
|
Packit |
23ab03 |
| grep "^stats: " \
|
|
Packit |
23ab03 |
| while read LINE; do
|
|
Packit |
23ab03 |
[ "$LINE" = "" ] && continue
|
|
Packit |
23ab03 |
set $LINE
|
|
Packit |
23ab03 |
echo $8
|
|
Packit |
23ab03 |
done \
|
|
Packit |
23ab03 |
| sort -u \
|
|
Packit |
23ab03 |
| while read TAPE; do
|
|
Packit |
23ab03 |
[ "$TAPE" = "" ] && continue
|
|
Packit |
23ab03 |
grep " $TAPE " $TapeList 2>/dev/null >/dev/null
|
|
Packit |
23ab03 |
[ $? != 0 ] \
|
|
Packit |
23ab03 |
&& echo `_ 'Tape %s missing in %s' "$TAPE" "$TapeList"`
|
|
Packit |
23ab03 |
done
|
|
Packit |
23ab03 |
|
|
Packit |
23ab03 |
echo `_ 'Ready.'`
|
|
Packit |
23ab03 |
|
|
Packit |
23ab03 |
exit 0
|