#! /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);