1#!/bin/bash 2 3################################################################### 4# 5# Fetch READ CAPACITY information for the given SCSI device(s). 6# 7# This script assumes the sg3_utils package is installed. 8# 9################################################################## 10 11verbose="" 12brief="" 13long_opt="" 14 15usage() 16{ 17 echo "Usage: scsi_readcap [-b] [-h] [-l] [-v] <device>+" 18 echo " where:" 19 echo " -b, --brief output brief capacity data" 20 echo " -h, --help print usage message" 21 echo " -l, --long send longer SCSI READ CAPACITY (16) cdb" 22 echo " -v, --verbose more verbose output" 23 echo "" 24 echo "Use SCSI READ CAPACITY command to fetch the size of each <device>" 25} 26 27opt="$1" 28while test ! -z "$opt" -a -z "${opt##-*}"; do 29 opt=${opt#-} 30 case "$opt" in 31 b|-brief) brief="-b" ;; 32 h|-help) usage ; exit 0 ;; 33 l|-long) long_opt="--16" ;; 34 v|-verbose) verbose="-v" ;; 35 vv) verbose="-vv" ;; 36 vvv) verbose="-vvv" ;; 37 *) echo "Unknown option: -$opt " ; exit 1 ;; 38 esac 39 shift 40 opt="$1" 41done 42 43if [ $# -lt 1 ] 44 then 45 usage 46 exit 1 47fi 48 49for i 50do 51 if [ $brief ] ; then 52 sg_readcap $brief $long_opt $verbose $i 2> /dev/null 53 else 54 echo "sg_readcap $brief $long_opt $verbose $i" 55 sg_readcap $brief $long_opt $verbose $i 56 fi 57done 58