Determining whether or not a SCSI disk is in use

Garrett Cooper youshi10 at u.washington.edu
Fri Apr 14 21:40:48 UTC 2006


On Apr 14, 2006, at 1:21 PM, Bigby Findrake wrote:

> On Fri, 14 Apr 2006, Bigby Findrake wrote:
>
> I'm sorry, I'm an idiot - the script, in its current incarnation,  
> needs to be modified.  It's doing exactly what you don't want it to  
> do - it will shut down the disk if there was activity.  The if  
> statement should read:
>
> if [ $STATUS -ne 0 ]
>
>> On Fri, 14 Apr 2006, Garrett Cooper wrote:
>>
>>> Yes. Recently accessed or is being accessed.
>>> -Garrett
>>
>> Well, for a shell-script-hack, which (i) requires no new kernel  
>> and (ii) could be fairly portable but (iii) could conceivably miss  
>> some activity, you could do something like the following:
>>
>> #!/bin/sh
>>
>> DISKDEV=da0
>> SHUTDOWN_COMMAND="camcontrol stop 0,1,0"
>> SECONDS=60
>>
>> # check for activity
>> # watch iostat for $SECONDS seconds for anything
>>
>> iostat -d $DISKDEV 1 5 | awk ' NR>2 && $2>0 { print "x" } ' |\
>> grep x > /dev/null
>>
>> STATUS=$?
>>
>> if [ $STATUS -eq 0 ]
>> then
>>
>> 	# there was activity,
>> 	$SHUTDOWN_COMMAND
>> fi

	Brilliant! That's exactly what I was looking for!
	The only thing I've noticed is that there is a small amount of data  
being transferred while the disk is idle, so perhaps the sampling  
needs to watch for the amount of data as well as the overall  
transactions being done to properly fix up a script to do this?
	Anyhow, I'll end up doing that, but thanks for the command :).
-Garrett


More information about the freebsd-questions mailing list