#!/usr/bin/perl

# Eduard Bloch scsi spindown script from his blog:
#http://www.rootfs.net/jaws//index.php?gadget=Blog&amp;action=SingleView&amp;id=22


$statfile="/proc/diskstats";
$interval=600;
$prefix="sd";

	

die "Could not read $statfile\n" if ! -r $statfile;
do {
	open(st, $statfile);
	while() {
		if( ($disk, $data) = (/^\s+\d+\s+\d+\s+(${prefix}[a-z]+)\s(.*)/) ) {
			$newdata{$disk}=$data;
			if($seen{$disk} eq $data && $halted{$disk} ne $data) {
				syswrite(STDOUT, "Spinning down: $1\n");
				system "scsi-spin -f -d /dev/$1";
				$halted{$disk}=$data;
			}
		}
	}
	close(st);
	%seen=%newdata;
} while(sleep $interval); 



