summaryrefslogtreecommitdiffstats
path: root/web/attachments/66456-nagios-plugins-1.3.1-check-apc-ups.patch
diff options
context:
space:
mode:
Diffstat (limited to 'web/attachments/66456-nagios-plugins-1.3.1-check-apc-ups.patch')
-rw-r--r--web/attachments/66456-nagios-plugins-1.3.1-check-apc-ups.patch220
1 files changed, 220 insertions, 0 deletions
diff --git a/web/attachments/66456-nagios-plugins-1.3.1-check-apc-ups.patch b/web/attachments/66456-nagios-plugins-1.3.1-check-apc-ups.patch
new file mode 100644
index 0000000..ec5f72b
--- /dev/null
+++ b/web/attachments/66456-nagios-plugins-1.3.1-check-apc-ups.patch
@@ -0,0 +1,220 @@
1diff -ruN nagios-plugins-1.3.1/contrib/check_apc_ups.pl nagios-plugins-1.3.1-new/contrib/check_apc_ups.pl
2--- nagios-plugins-1.3.1/contrib/check_apc_ups.pl 2002-08-14 20:02:31.000000000 +0100
3+++ nagios-plugins-1.3.1-new/contrib/check_apc_ups.pl 2003-07-14 18:39:57.000000000 +0100
4@@ -9,11 +9,19 @@
5 # remaining: hh:mm:ss" if all is well, and a list of specific problems
6 # if something is broken.
7
8+BEGIN {
9+ if ($0 =~ m/^(.*?)[\/\\]([^\/\\]+)$/) {
10+ $runtimedir = $1;
11+ $PROGNAME = $2;
12+ }
13+}
14+
15+require 5.004;
16+use POSIX;
17 use strict;
18 use Getopt::Long;
19-use vars qw($opt_V $opt_h $opt_H $opt_T $opt_t $opt_R $opt_r
20- $opt_L $opt_l $PROGNAME);
21-use lib utils.pm;
22+use vars qw($opt_V $opt_h $opt_H $opt_T $opt_t $opt_R $opt_r $opt_L $opt_l $community $PROGNAME);
23+use lib $main::runtimedir;
24 use utils qw(%ERRORS &print_revision &support &usage);
25
26 sub print_help ();
27@@ -24,18 +32,24 @@
28 $ENV{'PATH'}='';
29 $ENV{'BASH_ENV'}='';
30 $ENV{'ENV'}='';
31+$ENV{'CDPATH'}='';
32
33-Getopt::Long::Configure('bundling');
34+my $verbose = 0;
35+$community="public";
36+
37+Getopt::Long::Configure('no_ignore_case');
38 GetOptions
39- ("V" => \$opt_V, "version" => \$opt_V,
40- "h" => \$opt_h, "help" => \$opt_h,
41- "T=s" => \$opt_T, "temp-critical" => \$opt_T,
42- "t=s" => \$opt_t, "temp-warning" => \$opt_t,
43- "R=s" => \$opt_R, "runtime-critical" => \$opt_R,
44- "r=s" => \$opt_r, "runtime-warning" => \$opt_r,
45- "L=s" => \$opt_L, "load-critical" => \$opt_L,
46- "l=s" => \$opt_l, "load-warning" => \$opt_l,
47- "H=s" => \$opt_H, "hostname=s" => \$opt_H);
48+ ("V|version" => \$opt_V,
49+ "h|help" => \$opt_h,
50+ "T|temp-critical:i" => \$opt_T,
51+ "t|temp-warning:i" => \$opt_t,
52+ "R|runtime-critical:i" => \$opt_R,
53+ "r|runtime-warning:i" => \$opt_r,
54+ "L|load-critical:i" => \$opt_L,
55+ "l|load-warning:i" => \$opt_l,
56+ "H|hostname=s" => \$opt_H,
57+ "C|community=s" => \$community,
58+ "v|verbose:+" => \$verbose);
59
60 if ($opt_V) {
61 print_revision($PROGNAME,'$Revision: 1.2 $');
62@@ -51,7 +65,7 @@
63 # Defaults
64
65 $opt_R *= 60 * 100 if (defined $opt_R); # Convert minutes to secs/100
66-$opt_r *= 60 * 100 if (defined $opt_R);
67+$opt_r *= 60 * 100 if (defined $opt_r);
68
69 my $tempcrit = $opt_T || 60;
70 my $tempwarn = $opt_t || 40;
71@@ -140,7 +154,8 @@
72 [ "testInProgress", $ERRORS{'OK'} ], # 4
73 );
74
75-my $exitval = $ERRORS{'UNKNOWN'};
76+my $sep = ", ";
77+my $exitval = $ERRORS{'OK'};
78 my $data;
79 my $onbattery = 3;
80
81@@ -148,10 +163,10 @@
82
83 print "Output status: ";
84 if (defined ($data) && defined ($outputStatVals[$data][0])) {
85- print "$outputStatVals[$data][0] | ";
86+ print "$outputStatVals[$data][0]$sep";
87 escalate_exitval($outputStatVals[$data][1]);
88 } else {
89- print "unknown | ";
90+ print "unknown$sep";
91 }
92
93 $data = get_snmp_int_val( $upsAdvBatteryRunTimeRemaining );
94@@ -161,7 +176,7 @@
95 my $hrs = int($data / (60 * 60 * 100)); # Data is hundredths of a second
96 my $mins = int($data / (60 * 100)) % 60;
97 my $secs = ($data % 100) / 100;
98- printf "%d:%02d:%05.2f | ", $hrs, $mins, $secs;
99+ printf "%d:%02d:%05.2f$sep", $hrs, $mins, $secs;
100 if ($data <= $runtimecrit) {
101 escalate_exitval($ERRORS{'CRITICAL'});
102 } elsif ($data <= $runtimewarn) {
103@@ -170,7 +185,7 @@
104 escalate_exitval($ERRORS{'OK'});
105 }
106 } else {
107- print "unknown | ";
108+ print "unknown$sep";
109 }
110
111 $data = get_snmp_int_val( $upsBasicBatteryStatus );
112@@ -181,20 +196,20 @@
113 my $fc = get_snmp_int_val( $upsAdvInputLineFailCause );
114 if ($data == $onbattery) {
115 if (defined ($failCauseVals[$fc])) { $failcause = $failCauseVals[$fc]; }
116- print "$battStatVals[$data][0] ($failcause) | ";
117+ print "$battStatVals[$data][0] ($failcause)$sep";
118 } else {
119- print "$battStatVals[$data][0] | ";
120+ print "$battStatVals[$data][0]$sep";
121 }
122 escalate_exitval($battStatVals[$data][1]);
123 } else {
124- print "unknown | ";
125+ print "unknown$sep";
126 }
127
128 $data = get_snmp_int_val( $upsAdvBatteryTemperature );
129
130 print "Battery temp(C): ";
131 if (defined ($data)) {
132- print "$data | ";
133+ print "$data$sep";
134 if ($data >= $tempcrit) {
135 escalate_exitval($ERRORS{'CRITICAL'});
136 } elsif ($data >= $tempwarn) {
137@@ -203,24 +218,24 @@
138 escalate_exitval($ERRORS{'OK'});
139 }
140 } else {
141- print "unknown | ";
142+ print "unknown$sep";
143 }
144
145 $data = get_snmp_int_val( $upsAdvBatteryReplaceIndicator );
146
147 print "Battery repl: ";
148 if (defined ($data) && defined ($battReplVals[$data][0])) {
149- print "$battReplVals[$data][0] | ";
150+ print "$battReplVals[$data][0]$sep";
151 escalate_exitval($battReplVals[$data][1]);
152 } else {
153- print "unknown | ";
154+ print "unknown$sep";
155 }
156
157 $data = get_snmp_int_val( $upsAdvOutputLoad );
158
159 print "Output load (%): ";
160 if (defined ($data)) {
161- print "$data | ";
162+ print "$data$sep";
163 if ($data >= $loadcrit) {
164 escalate_exitval($ERRORS{'CRITICAL'});
165 } elsif ($data >= $loadwarn) {
166@@ -229,19 +244,25 @@
167 escalate_exitval($ERRORS{'OK'});
168 }
169 } else {
170- print "unknown | ";
171+ print "unknown$sep";
172 }
173
174 $data = get_snmp_int_val( $upsAdvTestDiagnosticsResults );
175
176 print "Diag result: ";
177 if (defined ($data) && defined ($diagnosticsResultsVals[$data][0])) {
178- print "$diagnosticsResultsVals[$data][0]\n";
179+ print "$diagnosticsResultsVals[$data][0]$sep";
180 escalate_exitval($diagnosticsResultsVals[$data][1]);
181 } else {
182- print "unknown\n";
183+ print "unknown$sep";
184 }
185
186+foreach my $key (keys %ERRORS) {
187+ if ($ERRORS{$key} == $exitval) {
188+ print "Status $key\n";
189+ last;
190+ }
191+}
192
193 exit $exitval;
194
195@@ -263,6 +284,8 @@
196 print "
197 -H, --hostname=HOST
198 Name or IP address of host to check
199+-C, --community=string
200+ Community string to use to query UPS (default: public)
201 -T --temp-critical
202 Battery degrees C above which a CRITICAL status will result (default: 60)
203 -t --temp-warning
204@@ -284,7 +307,7 @@
205 my $val=0;
206 my $oid = shift(@_);
207
208- $val = `/usr/bin/snmpget $host public $oid 2> /dev/null`;
209+ $val = `/usr/bin/snmpget -v 1 -c $community $host $oid 2> /dev/null`;
210 my @test = split(/ /,$val,3);
211
212 return undef unless (defined ($test[2]));
213@@ -297,6 +320,7 @@
214 $val = $test[2];
215 }
216
217+ chomp($val);
218 return $val;
219 }
220