# 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
#
# 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
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
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..."
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
#
# 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
;;
# ${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
;;