From 725106ee83b841903aa168ee4d3d4ddc5c7eb4f9 Mon Sep 17 00:00:00 2001 From: Kern Sibbald Date: Mon, 7 Jul 2008 12:21:49 +0000 Subject: [PATCH] Clear in-use bit on vol when unused while swapping. git-svn-id: https://bacula.svn.sourceforge.net/svnroot/bacula/trunk@7330 91ce42f0-d328-0410-95d8-f526ca767f89 --- bacula/scripts/Makefile.in | 6 +++ bacula/scripts/bacula.in | 1 + bacula/scripts/mtx-changer.in | 76 +++++++++++------------------------ bacula/src/version.h | 4 +- bacula/technotes-2.5 | 4 ++ 5 files changed, 37 insertions(+), 54 deletions(-) diff --git a/bacula/scripts/Makefile.in b/bacula/scripts/Makefile.in index 9ad6d0be49..6438f56f97 100755 --- a/bacula/scripts/Makefile.in +++ b/bacula/scripts/Makefile.in @@ -46,6 +46,12 @@ install: installdirs $(MV) -f ${DESTDIR}${scriptdir}/mtx-changer ${DESTDIR}${scriptdir}/mtx-changer.old; \ fi $(INSTALL_SCRIPT) mtx-changer $(DESTDIR)$(scriptdir)/mtx-changer + @if test -f ${DESTDIR}${scriptdir}/mtx-changer.conf; then \ + echo " ==> Saving existing mtx-changer.conf to mtx-changer.conf.new"; \ + $(INSTALL_SCRIPT) mtx-changer.conf $(DESTDIR)$(scriptdir)/mtx-changer.conf.new; \ + else \ + $(INSTALL_SCRIPT) mtx-changer.conf $(DESTDIR)$(scriptdir)/mtx-changer.conf; \ + fi @if test -f ${DESTDIR}${scriptdir}/disk-changer; then \ echo " ==> Saving existing disk-changer to disk-changer.old"; \ $(MV) -f ${DESTDIR}${scriptdir}/disk-changer ${DESTDIR}${scriptdir}/disk-changer.old; \ diff --git a/bacula/scripts/bacula.in b/bacula/scripts/bacula.in index 127c497936..8a4f91eb4c 100755 --- a/bacula/scripts/bacula.in +++ b/bacula/scripts/bacula.in @@ -31,6 +31,7 @@ case "$1" in restart) $0 stop + sleep 2 $0 start ;; diff --git a/bacula/scripts/mtx-changer.in b/bacula/scripts/mtx-changer.in index 7333bc5483..a237766d14 100644 --- a/bacula/scripts/mtx-changer.in +++ b/bacula/scripts/mtx-changer.in @@ -46,44 +46,14 @@ # exit code, Bacula will assume the request failed. # -MTX=@MTX@ +# source our conf file +. @scriptdir@/mtx-changer.conf -# mt status output -# SunOS No Additional Sense -# FreeBSD Current Driver State: at rest. -# Linux ONLINE -# Note Debian has a different mt than the standard Linux version. -# When no tape is in the drive it waits 2 minutes. -# When a tape is in the drive, it prints user unfriendly output. -# Note, with Ubuntu Gusty (8.04), there are two versions of mt, -# so we attempt to figure out which one. -# - -OS=`uname` -case ${OS} in - SunOS) - ready="No Additional Sense" - ;; - FreeBSD) - ready="Current Driver State: at rest." - ;; - Linux) - ready="ONLINE" - if test -f /etc/debian_version ; then - mt --version|grep "mt-st" >/dev/null 2>&1 - if test $? -eq 1 ; then - ready="drive status" - fi - fi - ;; -esac +MTX=@MTX@ -# -# log whats done -# -# to turn on logging, uncomment the following line -#touch @working_dir@/mtx.log -# +if test ${debug_log} -ne 0 ; then + touch @working_dir@/mtx.log +fi dbgfile="@working_dir@/mtx.log" debug() { if test -f $dbgfile; then @@ -174,10 +144,13 @@ debug "Parms: $ctl $cmd $slot $device $drive" case $cmd in unload) debug "Doing mtx -f $ctl unload $slot $drive" -# -# enable the following line if you need to eject the cartridge -# mt -f $device offline -# sleep 10 + + if test ${offline} -eq 1 ; then + mt -f $device offline + fi + if test ${offline_sleep} -ne 0 ; then + sleep ${offline_sleep} + fi ${MTX} -f $ctl unload $slot $drive ;; @@ -185,10 +158,9 @@ case $cmd in debug "Doing mtx -f $ctl load $slot $drive" ${MTX} -f $ctl load $slot $drive rtn=$? -# -# Increase the sleep time if you have a slow device -# or remove the sleep and add the following: -# sleep 15 + if test ${load_sleep} -ne 0 ; then + sleep ${load_sleep} + fi wait_for_drive $device exit $rtn ;; @@ -196,16 +168,16 @@ case $cmd in list) debug "Doing mtx -f $ctl -- to list volumes" make_temp_file -# Enable the following if you are using barcodes and need an inventory -# ${MTX} -f $ctl inventory + if test ${inventory} -ne 0 ; then + ${MTX} -f $ctl inventory + } ${MTX} -f $ctl status >${TMPFILE} rtn=$? - cat ${TMPFILE} | grep " Storage Element [0-9]*:.*Full" | awk "{print \$3 \$4}" | sed "s/Full *\(:VolumeTag=\)*//" -# -# If you have a VXA PacketLoader and the above does not work, try -# turning it off and enabling the following line. -# cat ${TMPFILE} | grep " *Storage Element [0-9]*:.*Full" | sed "s/ Storage Element //" | sed "s/Full :VolumeTag=//" -# + if test ${vxa_packetloader} -ne 0 ; then + cat ${TMPFILE} | grep " *Storage Element [0-9]*:.*Full" | sed "s/ Storage Element //" | sed "s/Full :VolumeTag=//" + else + cat ${TMPFILE} | grep " Storage Element [0-9]*:.*Full" | awk "{print \$3 \$4}" | sed "s/Full *\(:VolumeTag=\)*//" + fi cat ${TMPFILE} | grep "^Data Transfer Element [0-9]*:Full (Storage Element [0-9]" | awk '{printf "%s:%s\n",$7,$10}' rm -f ${TMPFILE} >/dev/null 2>&1 exit $rtn diff --git a/bacula/src/version.h b/bacula/src/version.h index 3892ed9079..cfbccb70e5 100644 --- a/bacula/src/version.h +++ b/bacula/src/version.h @@ -4,8 +4,8 @@ #undef VERSION #define VERSION "2.5.1" -#define BDATE "06 July 2008" -#define LSMDATE "06Jul08" +#define BDATE "07 July 2008" +#define LSMDATE "07Jul08" #define PROG_COPYRIGHT "Copyright (C) %d-2008 Free Software Foundation Europe e.V.\n" #define BYEAR "2008" /* year for copyright messages in progs */ diff --git a/bacula/technotes-2.5 b/bacula/technotes-2.5 index d84230af60..6e74306c99 100644 --- a/bacula/technotes-2.5 +++ b/bacula/technotes-2.5 @@ -30,6 +30,10 @@ vtape driver General: +07Jul08 +kes Add a mtx-changer.conf file that is not overwritten during + an upgrade. It fully configures the mtx-changer script. +kes Clear in-use bit on vol when unused while swapping. 06Jul08 kes Remove sleep at end of ./bacula kes Clear hash packet for hardlinked files correctly. This corrects -- 2.39.5