summaryrefslogtreecommitdiffstats
path: root/contrib/check_linux_raid.pl
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/check_linux_raid.pl')
-rw-r--r--contrib/check_linux_raid.pl29
1 files changed, 14 insertions, 15 deletions
diff --git a/contrib/check_linux_raid.pl b/contrib/check_linux_raid.pl
index 73e7fd26..6650a42b 100644
--- a/contrib/check_linux_raid.pl
+++ b/contrib/check_linux_raid.pl
@@ -28,8 +28,8 @@ use utils qw(%ERRORS);
28 28
29# die with an error if we're not on Linux 29# die with an error if we're not on Linux
30if ($^O ne 'linux') { 30if ($^O ne 'linux') {
31 print "This plugin only applicable on Linux.\n"; 31 print "This plugin only applicable on Linux.\n";
32 exit $ERRORS{'UNKNOWN'}; 32 exit $ERRORS{'UNKNOWN'};
33} 33}
34 34
35sub max_state($$){ 35sub max_state($$){
@@ -66,10 +66,10 @@ while(defined $nextdev){
66 $recovery{$device} = $1; 66 $recovery{$device} = $1;
67 ($finish{$device}) = /finish=(.*?min)/; 67 ($finish{$device}) = /finish=(.*?min)/;
68 $device=undef; 68 $device=undef;
69 } elsif (/resync =\s+(.*?)\s/) { 69 } elsif (/resync =\s+(.*?)\s/) {
70 $resyncing{$device} = $1; 70 $resyncing{$device} = $1;
71 ($finish{$device}) = /finish=(.*?min)/; 71 ($finish{$device}) = /finish=(.*?min)/;
72 $device=undef; 72 $device=undef;
73 } elsif (/^\s*$/) { 73 } elsif (/^\s*$/) {
74 $device=undef; 74 $device=undef;
75 } 75 }
@@ -100,14 +100,14 @@ foreach my $k (sort keys %devices){
100 $code = max_state($code, "CRITICAL"); 100 $code = max_state($code, "CRITICAL");
101 } 101 }
102 } elsif ($status{$k} =~ /U+/) { 102 } elsif ($status{$k} =~ /U+/) {
103 if (defined $resyncing{$k}) { 103 if (defined $resyncing{$k}) {
104 $msg .= sprintf " %s status=%s, resync=%s, finish=%s.", 104 $msg .= sprintf " %s status=%s, resync=%s, finish=%s.",
105 $devices{$k}, $status{$k}, $resyncing{$k}, $finish{$k}; 105 $devices{$k}, $status{$k}, $resyncing{$k}, $finish{$k};
106 $code = max_state($code, "WARNING"); 106 $code = max_state($code, "WARNING");
107 } else { 107 } else {
108 $msg .= sprintf " %s status=%s.", $devices{$k}, $status{$k}; 108 $msg .= sprintf " %s status=%s.", $devices{$k}, $status{$k};
109 $code = max_state($code, "OK"); 109 $code = max_state($code, "OK");
110 } 110 }
111 } else { 111 } else {
112 if ($active{$k}) { 112 if ($active{$k}) {
113 $msg .= sprintf " %s active with no status information.", 113 $msg .= sprintf " %s active with no status information.",
@@ -123,4 +123,3 @@ foreach my $k (sort keys %devices){
123 123
124print $code, $msg, "\n"; 124print $code, $msg, "\n";
125exit ($ERRORS{$code}); 125exit ($ERRORS{$code});
126