73 lines
1.6 KiB
Bash
Executable File

#!/bin/sh
#
# Copyright (C) 2000-2016 Kern Sibbald
# License: BSD 2-Clause; see file LICENSE-FOSS
#
# Bacula interface to tapeinfo to get tape alerts
#
# tapealert %l (control device name)
#
# Note: you must have in your SD Device resource:
# Alert Command = /full-path/tapealert %l
# Control Device = /dev/sg0n (where this is the scsi control
# device for the device you are using).
#
# Note: to test
# 1. uncomment out the DEBUG=1 line below
# 2. Possibly remove or add TapeAlert[nn]: that you want to test.
# Note, the message following the : is not used.
# 3. Run Bacula
#
#DEBUG=1
tapeinfo=`which tapeinfo`
if [ x${tapeinfo} = x ] ; then
echo "tapeinfo program not found, but is required."
exit 1
fi
if [ x$1 = x ] ; then
echo "First argument missing. Must be device control name."
exit 1
fi
if [ x$DEBUG = x ] ; then
out=`mktemp`
$tapeinfo -f $1 >$out
ret=$?
awk '/^TapeAlert/ { $1=""; gsub(/^ */, "", $0); print $0 }' $out
rm -f $out
exit $ret
else
# For testing only
cat <<EOF |grep "^TapeAlert" - | awk '/^TapeAlert/ { $1=""; gsub(/^ */, "", $0); print $0 }'
Product Type: Tape Drive
Vendor ID: 'IBM '
Product ID: 'ULTRIUM-TD6 '
Revision: 'G350'
Attached Changer API: No
SerialNumber: 'F3A2930090'
TapeAlert[3]: Hard Error: Uncorrectable read/write error.
TapeAlert[5]: Read Failure: Tape faulty or tape drive broken.
TapeAlert[39]: Undefined.
MinBlock: 1
MaxBlock: 8388608
SCSI ID: 9
SCSI LUN: 0
Ready: yes
BufferedMode: yes
Medium Type: 0x58
Density Code: 0x58
BlockSize: 0
DataCompEnabled: yes
DataCompCapable: yes
DataDeCompEnabled: yes
CompType: 0xff
DeCompType: 0xff
EOF
fi