d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China#!/sbin/sh
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China#
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China# CDDL HEADER START
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China#
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China# The contents of this file are subject to the terms of the
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China# Common Development and Distribution License (the "License").
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China# You may not use this file except in compliance with the License.
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China#
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China# or http://www.opensolaris.org/os/licensing.
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China# See the License for the specific language governing permissions
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China# and limitations under the License.
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China#
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China# When distributing Covered Code, include this CDDL HEADER in each
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China# If applicable, add the following below this CDDL HEADER, with the
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China# fields enclosed by brackets "[]" replaced with your own identifying
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China# information: Portions Copyright [yyyy] [name of copyright owner]
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China#
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China# CDDL HEADER END
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China#
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China#
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China# Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China#
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China#
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China# Start/stop iscsi initiator service
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China#
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China. /lib/svc/share/smf_include.sh
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China# checkmessage "fsck_device | mount_point"
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China#
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China# Simple auxilary routine to the shell function checkfs. Prints out
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China# instructions for a manual file system check before entering the shell.
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China#
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing Chinacheckmessage() {
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China echo "" > /dev/console
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China if [ "$1" != "" ] ; then
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China echo "WARNING - Unable to repair one or more \c" \
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China > /dev/console
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China echo "of the following filesystem(s):" > /dev/console
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China echo "\t$1" > /dev/console
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China else
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China echo "WARNING - Unable to repair one or more filesystems." \
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China > /dev/console
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China fi
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China echo "Run fsck manually (fsck filesystem...)." > /dev/console
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China echo "" > /dev/console
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China}
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China#
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China# checkfs raw_device fstype mountpoint
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China#
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China# Check the file system specified. The return codes from fsck have the
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China# following meanings.
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China# 0 - file system is unmounted and okay
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China# 32 - file system is unmounted and needs checking (fsck -m only)
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China# 33 - file system is already mounted
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China# 34 - cannot stat device
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China# 36 - uncorrectable errors detected - terminate normally (4.1 code 8)
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China# 37 - a signal was caught during processing (4.1 exit 12)
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China# 39 - uncorrectable errors detected - terminate rightaway (4.1 code 8)
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China# 40 - for root, same as 0 (used by rcS to remount root)
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China#
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing Chinacheckfs() {
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China /usr/sbin/fsck -F $2 -m $1 >/dev/null 2>&1
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China if [ $? -ne 0 ]
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China then
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China # Determine fsck options by file system type
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China case "$2" in
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China ufs) foptions="-o p"
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China ;;
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China *) foptions="-y"
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China ;;
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China esac
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China echo "The "$3" file system ("$1") is being checked."
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China /usr/sbin/fsck -F $2 ${foptions} $1
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China case $? in
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China 0|40) # file system OK
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China ;;
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China *) # couldn't fix the file system
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China echo "/usr/sbin/fsck failed with exit code "$?"."
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China checkmessage "$1"
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China ;;
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China esac
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China fi
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China}
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing Chinamount_iscsi() {
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China err=0
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China iscsilist=""
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China exec < /etc/vfstab
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China while read special fsckdev mountp fstype fsckpass automnt mntopts; do
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China case $special in
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China '#'* | '' ) # Ignore comments, empty lines.
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China continue
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China ;;
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China '-') # Ignore "no-action" lines.
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China continue
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China ;;
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China esac
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China if [ "$automnt" != "iscsi" ]; then
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China continue
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China fi
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China if [ "$fstype" = "-" ]; then
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China echo "iscsi-initiator: FSType of iscsi LUN \c" 1>&2
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China echo "$special cannot be identified" 1>&2
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China continue
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China fi
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China #
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China # Ignore entries already mounted
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China #
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China /usr/bin/grep " $mountp " /etc/mnttab >/dev/null \
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China 2>&1 && continue
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China #
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China # Can't fsck if no fsckdev is specified
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China #
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China if [ "$fsckdev" = "-" ]; then
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China iscsilist="$iscsilist $mountp"
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China continue
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China fi
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China #
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China # fsck everything else:
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China #
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China # fsck -m simply returns true if the filesystem is
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China # suitable for mounting.
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China #
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China /usr/sbin/fsck -m -F $fstype $fsckdev >/dev/null 2>&1
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China case $? in
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China 0|40) iscsilist="$iscsilist $mountp"
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China continue
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China ;;
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China 32) checkfs $fsckdev $fstype $mountp
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China iscsilist="$iscsilist $mountp"
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China continue
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China ;;
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China 33) # already mounted
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China echo "$special already mounted"
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China ;;
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China 34) # bogus special device
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China echo "Cannot stat $fsckdev - ignoring"
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China err=1
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China ;;
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China *) # uncorrectable errors
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China echo "$fsckdev uncorrectable error"
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China err=1
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China ;;
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China esac
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China done
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China [ -z "$iscsilist" ] || /sbin/mount -a $iscsilist
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China for iscsilun in $iscsilist
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China do
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China /usr/bin/grep " $iscsilun " /etc/mnttab >/dev/null 2>&1
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China if [ $? -ne 0 ]; then
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China echo "Fail to mount $iscsilun"
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China err=1
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China fi
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China done
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China return $err
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China}
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing Chinaumount_iscsi () {
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China #
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China # Generate iscsi mountp list from /etc/vfstab
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China exec < /etc/vfstab
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China while read special fsckdev mountp fstype fsckpass automnt mntopts; do
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China case $special in
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China '#'* | '') continue;; # Ignore comments,
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China # empty lines.
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China '-') continue;; # Ignore "no-action lines.
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China esac
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China if [ "$automnt" != "iscsi" ]; then
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China continue
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China fi
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China /usr/bin/grep " $mountp " /etc/mnttab >/dev/null 2>&1
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China if [ $? -ne 0 ]; then
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China continue
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China fi
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China iscsilist="$iscsilist $mountp"
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China done
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China if [ -n "$iscsilist" ]; then
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China umount -a $iscsilist 1>&2
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China rc=$?
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China else
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China rc=0;
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China fi
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China return $rc
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China}
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing Chinacase "$1" in
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China'start')
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China /usr/bin/pgrep -P 1 -x iscsid
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China if [ $? -ne 0 ]; then
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China /lib/svc/method/iscsid
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China fi
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China if [ $? -eq 0 ]; then
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China delay=60
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China while [ $delay -gt 0 ]; do
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China delay=`expr $delay - 1`
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China mount_iscsi
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China if [ $? -eq 1 ]; then
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China if [ $delay -gt 0 ]; then
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China sleep 1
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China continue
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China else
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China echo "iscsi-initiator: mount iscsi \c"
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China echo "lun in /etc/vfstab fail."
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China umount_iscsi
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China exit $SMF_EXIT_ERR_CONFIG
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China fi
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China else
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China exit $SMF_EXIT_OK
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China fi
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China done
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China else
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China exit $?
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China fi
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China ;;
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China'stop')
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China umount_iscsi
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China /usr/bin/pkill -P 1 -x iscsid
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China exit 0
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China ;;
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China*)
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China echo "Usage: $0 { start | stop }"
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China exit 1
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China ;;
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing Chinaesac
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing Chinaexit $SMF_EXIT_OK
d30a1dc56ac8d5e7462b900c98440ba40daa3a46yi zhang - Sun Microsystems - Beijing China