X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=bacula%2Fscripts%2Fmtx-changer.in;h=1dbc5b410f66dd3fcee010b28e7acf2675c945d4;hb=efaee52f003a97c4f73a89505417ecfbe9fcdeeb;hp=4588ef0753e121658e19082155a6488fc60cd993;hpb=d16ae872668c35a3017639307b1098cb9245b9fa;p=bacula%2Fbacula diff --git a/bacula/scripts/mtx-changer.in b/bacula/scripts/mtx-changer.in index 4588ef0753..1dbc5b410f 100644 --- a/bacula/scripts/mtx-changer.in +++ b/bacula/scripts/mtx-changer.in @@ -23,6 +23,18 @@ # the SCSI control channel is /dev/sg0, and the read/write device # is /dev/nst0. # +# The commands are: +# Command Function +# unload unload a given slot +# load load a given slot +# loaded which slot is loaded? +# list list Volume names (requires barcode reader) +# slots how many slots total? +# +# Slots are numbered from 1 ... +# Drives are numbered from 0 ... +# +# # If you need to an offline, refer to the drive as $4 # e.g. mt -f $4 offline # @@ -40,6 +52,10 @@ MTX=@MTX@ # 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. +# OS=`uname` case ${OS} in @@ -49,8 +65,12 @@ case ${OS} in FreeBSD) ready="Current Driver State: at rest." ;; - *) - stat="ONLINE" + Linux) + if test -e /etc/debian_version ; then + ready="drive status" + else + ready="ONLINE" + fi ;; esac @@ -96,7 +116,7 @@ make_temp_file() { wait_for_drive() { i=0 while [ $i -le 300 ]; do # Wait max 300 seconds - if mt -f $1 status | grep ${ready} >/dev/null 2>&1; then + if mt -f $1 status 2>&1 | grep "${ready}" >/dev/null 2>&1; then break fi debug "Device $1 - not ready, retrying..." @@ -112,7 +132,7 @@ check_parm_count() { pCountNeed=$2 if test $pCount -lt $pCountNeed; then echo "usage: mtx-changer ctl-device command [slot archive-device drive-index]" - echo " Insufficient number of arguments arguments given." + echo " Insufficient number of arguments given." if test $pCount -lt 2; then echo " Mimimum usage is first two arguments ..." else @@ -164,8 +184,8 @@ case $cmd in # # Increase the sleep time if you have a slow device # or remove the sleep and add the following: -# wait_for_drive $device - sleep 15 +# sleep 15 + wait_for_drive $device exit $rtn ;; @@ -176,13 +196,14 @@ case $cmd in # ${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=\)*//" - 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 + 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. -# ${MTX} -f $ctl status | grep " *Storage Element [0-9]*:.*Full" | sed "s/*Storage Element //" | sed "s/Full :VolumeTag=//" +# cat ${TMPFILE} | grep " *Storage Element [0-9]*:.*Full" | sed "s/ Storage Element //" | sed "s/Full :VolumeTag=//" +# + 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 ;;