78 lines
1.3 KiB
Perl
78 lines
1.3 KiB
Perl
|
#!/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);
|