diff options
author | Thomas Guyot-Sionnest <dermoth@aei.ca> | 2010-10-05 23:19:03 -0400 |
---|---|---|
committer | Thomas Guyot-Sionnest <dermoth@aei.ca> | 2010-10-05 23:19:03 -0400 |
commit | e30f77864054e54f3c777aee0315f9c13b10957d (patch) | |
tree | 8f87eb27734546534135816e270c67116557c293 | |
parent | bfe20df4a54f9b173e87cf2b13db0998a6303335 (diff) | |
download | monitoring-plugins-e30f77864054e54f3c777aee0315f9c13b10957d.tar.gz |
Patch for check_linux_raid with on linear/raid0 arrays
Fixes bug #3049988, Debian bug #579049
-rw-r--r-- | contrib/check_linux_raid.pl | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/contrib/check_linux_raid.pl b/contrib/check_linux_raid.pl index d2e5b463..77e75f6d 100644 --- a/contrib/check_linux_raid.pl +++ b/contrib/check_linux_raid.pl @@ -71,7 +71,8 @@ while(defined $nextdev){ } elsif (/^($nextdev)\s*:/) { $device=$1; $devices{$device}=$device; - if (/active/) { + if (/\sactive/) { + $status{$device} = ''; # Shall be filled later if available $active{$device} = 1; } } @@ -80,7 +81,11 @@ while(defined $nextdev){ } foreach my $k (sort keys %devices){ - if ($status{$k} =~ /_/) { + if (!exists($status{$k})) { + $msg .= sprintf " %s inactive with no status information.", + $devices{$k}; + $code = max_state($code, "CRITICAL"); + } elsif ($status{$k} =~ /_/) { if (defined $recovery{$k}) { $msg .= sprintf " %s status=%s, recovery=%s, finish=%s.", $devices{$k}, $status{$k}, $recovery{$k}, $finish{$k}; @@ -94,10 +99,11 @@ foreach my $k (sort keys %devices){ $code = max_state($code, "OK"); } else { if ($active{$k}) { - $msg .= sprintf " %s active with no status information.\n", + $msg .= sprintf " %s active with no status information.", $devices{$k}; $code = max_state($code, "OK"); } else { + # This should't run anymore, but is left as a catch-all $msg .= sprintf " %s does not exist.\n", $devices{$k}; $code = max_state($code, "CRITICAL"); } |