Blame server-src/amcheckdb.sh

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