diff options
Diffstat (limited to 'scripts/scsi_readcap')
-rwxr-xr-x | scripts/scsi_readcap | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/scripts/scsi_readcap b/scripts/scsi_readcap new file mode 100755 index 00000000..8f308f4f --- /dev/null +++ b/scripts/scsi_readcap @@ -0,0 +1,57 @@ +#!/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 |