check_wave.pl 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. #!/usr/bin/perl
  2. # CHECK_WAVE.PL
  3. # Plugin to test signal strength on Speedlan wireless equipment
  4. # Contributed by Jeffry Blank
  5. $Host=$ARGV[0];
  6. $sig_crit=$ARGV[1];
  7. $sig_warn=$ARGV[2];
  8. $low1 = `snmpget $Host public .1.3.6.1.4.1.74.2.21.1.2.1.8.1`;
  9. @test=split(/ /,$low1);
  10. $low1=@test[2];
  11. $med1 = `snmpget $Host public .1.3.6.1.4.1.74.2.21.1.2.1.9.1`;
  12. @test=split(/ /,$med1);
  13. $med1=@test[2];
  14. $high1 = `snmpget $Host public .1.3.6.1.4.1.74.2.21.1.2.1.10.1`;
  15. @test=split(/ /,$high1);
  16. $high1=@test[2];
  17. sleep(2);
  18. $snr = `snmpget $Host public .1.3.6.1.4.1.762.2.5.2.1.17.1`;
  19. @test=split(/ /,$snr);
  20. $snr=@test[2];
  21. $snr=int($snr*25);
  22. $low2 = `snmpget $Host public .1.3.6.1.4.1.74.2.21.1.2.1.8.1`;
  23. @test=split(/ /,$low2);
  24. $low2=@test[2];
  25. $med2 = `snmpget $Host public .1.3.6.1.4.1.74.2.21.1.2.1.9.1`;
  26. @test=split(/ /,$med2);
  27. $med2=@test[2];
  28. $high2 = `snmpget $Host public .1.3.6.1.4.1.74.2.21.1.2.1.10.1`;
  29. @test=split(/ /,$high2);
  30. $high2=@test[2];
  31. $low=$low2-$low1;
  32. $med=$med2-$med1;
  33. $high=$high2-$high1;
  34. $tot=$low+$med+$high;
  35. if ($tot==0)
  36. {
  37. $ss=0;
  38. }
  39. else
  40. {
  41. $lowavg=$low/$tot;
  42. $medavg=$med/$tot;
  43. $highavg=$high/$tot;
  44. $ss=($medavg*50)+($highavg*100);
  45. }
  46. printf("Signal Strength at: %3.0f%, SNR at $snr%",$ss);
  47. #print "Signal Strength at: $ss%, SNR at $snr%";
  48. if ($ss<$sig_crit)
  49. {exit(2)}
  50. if ($ss<$sig_warn)
  51. {exit(1)}
  52. exit(0);