58 lines
1.3 KiB
Bash
Executable File
58 lines
1.3 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
###################################################################
|
|
#
|
|
# Fetch READ CAPACITY information for the given SCSI device(s).
|
|
#
|
|
# This script assumes the sg3_utils package is installed.
|
|
#
|
|
##################################################################
|
|
|
|
verbose=""
|
|
brief=""
|
|
long_opt=""
|
|
|
|
usage()
|
|
{
|
|
echo "Usage: scsi_readcap [-b] [-h] [-l] [-v] <device>+"
|
|
echo " where:"
|
|
echo " -b, --brief output brief capacity data"
|
|
echo " -h, --help print usage message"
|
|
echo " -l, --long send longer SCSI READ CAPACITY (16) cdb"
|
|
echo " -v, --verbose more verbose output"
|
|
echo ""
|
|
echo "Use SCSI READ CAPACITY command to fetch the size of each <device>"
|
|
}
|
|
|
|
opt="$1"
|
|
while test ! -z "$opt" -a -z "${opt##-*}"; do
|
|
opt=${opt#-}
|
|
case "$opt" in
|
|
b|-brief) brief="-b" ;;
|
|
h|-help) usage ; exit 0 ;;
|
|
l|-long) long_opt="--16" ;;
|
|
v|-verbose) verbose="-v" ;;
|
|
vv) verbose="-vv" ;;
|
|
vvv) verbose="-vvv" ;;
|
|
*) echo "Unknown option: -$opt " ; exit 1 ;;
|
|
esac
|
|
shift
|
|
opt="$1"
|
|
done
|
|
|
|
if [ $# -lt 1 ]
|
|
then
|
|
usage
|
|
exit 1
|
|
fi
|
|
|
|
for i
|
|
do
|
|
if [ $brief ] ; then
|
|
sg_readcap $brief $long_opt $verbose $i 2> /dev/null
|
|
else
|
|
echo "sg_readcap $brief $long_opt $verbose $i"
|
|
sg_readcap $brief $long_opt $verbose $i
|
|
fi
|
|
done
|