73 lines
1.6 KiB
Bash
Executable File
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
|