aboutsummaryrefslogtreecommitdiff
path: root/scripts/scsi_start
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/scsi_start')
-rwxr-xr-xscripts/scsi_start55
1 files changed, 55 insertions, 0 deletions
diff --git a/scripts/scsi_start b/scripts/scsi_start
new file mode 100755
index 00000000..aec7ab97
--- /dev/null
+++ b/scripts/scsi_start
@@ -0,0 +1,55 @@
+#!/bin/bash
+
+################################################
+#
+# Spin up the given SCSI disk(s).
+#
+# SCSI disks (or disks that understand SCSI commands)
+# are assumed. By default, the immediate bit is set so the
+# command should return immediately. The disk however will
+# take 10 seconds or more to spin up. The '-w' option
+# causes each start to wait until the disk reports that it
+# has started.
+#
+# This script assumes the sg3_utils package is installed.
+#
+###############################################
+
+verbose=""
+immediate="-i"
+
+usage()
+{
+ echo "Usage: scsi_start [-h] [-v] [-w] <device>+"
+ echo " where:"
+ echo " -h, --help print usage message"
+ echo " -v, --verbose more verbose output"
+ echo " -w, --wait wait for each start to complete"
+ echo ""
+ echo "Send SCSI START STOP UNIT command to start each <device>"
+}
+
+opt="$1"
+while test ! -z "$opt" -a -z "${opt##-*}"; do
+ opt=${opt#-}
+ case "$opt" in
+ h|-help) usage ; exit 0 ;;
+ v|-verbose) verbose="-v" ;;
+ w|-wait) immediate="" ;;
+ *) echo "Unknown option: -$opt " ; exit 1 ;;
+ esac
+ shift
+ opt="$1"
+done
+
+if [ $# -lt 1 ]
+ then
+ usage
+ exit 1
+fi
+
+for i
+do
+ echo "sg_start $immediate 1 $verbose $i"
+ sg_start $immediate 1 $verbose $i
+done