#!/bin/bash DEV=/dev/sdb MNT=/media/esata- DELAY=3 registered() { if [ -b "$DEV" ]; then return 0 else return 1 fi } mounted() { if mount | grep -q "$MNT"; then return 0 else return 1 fi } doregister() { registered && return 0 scsiadd -a 1 0 0 0 >/dev/null || return 1 sleep $DELAY registered && return 0 || return 0 } domount() { mounted && return 0 doregister || return 1 mkdir -p "${MNT}1" || return 1 mount ${DEV}1 ${MNT}1 || return 1 mkdir -p "${MNT}2" || return 1 mount ${DEV}2 ${MNT}2 || return 1 return 0 } dounregister() { registered || return 0 scsiadd -r 1 0 0 0 >/dev/null || return 1 sleep $DELAY registered && return 1 || return 0 } doumount() { mounted || return 0 umount ${MNT}2 || return 1 umount ${MNT}1 || return 1 mounted && return 1 dounregister || return 1 return 0 } if [ "$1" = "mount" ]; then if domount; then echo "esata is mounted" else echo "$0: cannot mount esata" >&2 dounregister fi elif [ "$1" = "umount" -o "$1" = "unmount" ]; then if doumount; then echo "esata is unmounted" else echo "$0: cannot unmount esata" >&2 exit 1 fi elif [ "$1" = "register" ]; then if doregister; then echo "esata is registered" else echo "$0: cannot register esata" >&2 exit 1 fi elif [ "$1" = "status" ]; then if mounted; then echo "esata is mounted" elif registered; then echo "esata is registered but not mounted" else echo "esata is unregistered" fi #mount | grep "$DEV" #scsiadd -p | grep "scsi1" else echo "usage: $0 [mount|umount|register|status]" fi exit 0