aboutsummaryrefslogtreecommitdiff
path: root/scripts/scsi_readcap
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/scsi_readcap')
-rwxr-xr-xscripts/scsi_readcap57
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