#! /usr/bin/perl
# anders@fupp.net, 2009-01-25
# check status for amr (MegaRAID) RAID in FreeBSD
# amrstat must be authorized in sudoers:
# nagios ALL=(root) NOPASSWD: /usr/local/sbin/amrstat
# Requires ports/sysutils/amrstat in stalled.

$ENV{'PATH'} = "/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin";
$ret = 0;
$out = "";
$cmd = "amrstat";
if ($< != 0) {
	$cmd = "sudo -u root $cmd";
}

foreach $foo (`$cmd`) {
	chomp($foo);
	if ($foo =~ /^Logical\s+volume\s+(\d+):\s+(\w+)/) {
		if (${2} ne "optimal") { $ret = 1; }
		$out .= "vol${1}=${2} ";
	} elsif ($foo =~ /^Physical\s+drive\s+([\d\:]+)\s+(\w+)/) {
		if (${2} ne "online") { $ret = 1; }
		$out .= "drive${1}=${2} ";
	}
}

$out =~ s@\ $@@;
print $out . "\n";
exit($ret);
