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