| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- #!/usr/bin/perl
- # CHECK_WAVE.PL
- # Plugin to test signal strength on Speedlan wireless equipment
- # Contributed by Jeffry Blank
- $Host=$ARGV[0];
- $sig_crit=$ARGV[1];
- $sig_warn=$ARGV[2];
- $low1 = `snmpget $Host public .1.3.6.1.4.1.74.2.21.1.2.1.8.1`;
- @test=split(/ /,$low1);
- $low1=@test[2];
- $med1 = `snmpget $Host public .1.3.6.1.4.1.74.2.21.1.2.1.9.1`;
- @test=split(/ /,$med1);
- $med1=@test[2];
- $high1 = `snmpget $Host public .1.3.6.1.4.1.74.2.21.1.2.1.10.1`;
- @test=split(/ /,$high1);
- $high1=@test[2];
- sleep(2);
- $snr = `snmpget $Host public .1.3.6.1.4.1.762.2.5.2.1.17.1`;
- @test=split(/ /,$snr);
- $snr=@test[2];
- $snr=int($snr*25);
- $low2 = `snmpget $Host public .1.3.6.1.4.1.74.2.21.1.2.1.8.1`;
- @test=split(/ /,$low2);
- $low2=@test[2];
- $med2 = `snmpget $Host public .1.3.6.1.4.1.74.2.21.1.2.1.9.1`;
- @test=split(/ /,$med2);
- $med2=@test[2];
- $high2 = `snmpget $Host public .1.3.6.1.4.1.74.2.21.1.2.1.10.1`;
- @test=split(/ /,$high2);
- $high2=@test[2];
- $low=$low2-$low1;
- $med=$med2-$med1;
- $high=$high2-$high1;
- $tot=$low+$med+$high;
- if ($tot==0)
- {
- $ss=0;
- }
- else
- {
- $lowavg=$low/$tot;
- $medavg=$med/$tot;
- $highavg=$high/$tot;
- $ss=($medavg*50)+($highavg*100);
- }
- printf("Signal Strength at: %3.0f%, SNR at $snr%",$ss);
- #print "Signal Strength at: $ss%, SNR at $snr%";
- if ($ss<$sig_crit)
- {exit(2)}
- if ($ss<$sig_warn)
- {exit(1)}
- exit(0);
|