Code

Fix for regex input of '|', being output causing problems with Nagios' parsing of
[nagiosplug.git] / contrib / check_wave.pl
1 #!/usr/bin/perl
3 # CHECK_WAVE.PL
4 # Plugin to test signal strength on Speedlan wireless equipment
5 # Contributed by Jeffry Blank
7 $Host=$ARGV[0];
8 $sig_crit=$ARGV[1];
9 $sig_warn=$ARGV[2];
14 $low1 = `snmpget $Host public .1.3.6.1.4.1.74.2.21.1.2.1.8.1`;
15 @test=split(/ /,$low1);
16 $low1=@test[2];
19 $med1 = `snmpget $Host public .1.3.6.1.4.1.74.2.21.1.2.1.9.1`;
20 @test=split(/ /,$med1);
21 $med1=@test[2];
24 $high1 = `snmpget $Host public .1.3.6.1.4.1.74.2.21.1.2.1.10.1`;
25 @test=split(/ /,$high1);
26 $high1=@test[2];
28 sleep(2);
32 $snr = `snmpget $Host public .1.3.6.1.4.1.762.2.5.2.1.17.1`;
33 @test=split(/ /,$snr);
34 $snr=@test[2];
35 $snr=int($snr*25);
36 $low2 = `snmpget $Host public .1.3.6.1.4.1.74.2.21.1.2.1.8.1`;
37 @test=split(/ /,$low2);
38 $low2=@test[2];
41 $med2 = `snmpget $Host public .1.3.6.1.4.1.74.2.21.1.2.1.9.1`;
42 @test=split(/ /,$med2);
43 $med2=@test[2];
46 $high2 = `snmpget $Host public .1.3.6.1.4.1.74.2.21.1.2.1.10.1`;
47 @test=split(/ /,$high2);
48 $high2=@test[2];
52 $low=$low2-$low1;
53 $med=$med2-$med1;
54 $high=$high2-$high1;
56 $tot=$low+$med+$high;
59 if ($tot==0)
60   {
61    $ss=0;
62   }
63 else
64   {
65    $lowavg=$low/$tot;
66    $medavg=$med/$tot;
67    $highavg=$high/$tot;
68    $ss=($medavg*50)+($highavg*100);
69   }
70 printf("Signal Strength at: %3.0f%,  SNR at $snr%",$ss);
71 #print "Signal Strength at: $ss%,  SNR at $snr%";
72 if ($ss<$sig_crit)
73   {exit(2)}
74 if ($ss<$sig_warn)
75   {exit(1)}
77 exit(0);