| #!/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 |