create-cfg-mem.pl
上传用户:shbosideng
上传日期:2013-05-04
资源大小:1555k
文件大小:2k
源码类别:

SNMP编程

开发平台:

C/C++

  1. #!/usr/bin/perl
  2. #-----------------------------------------------
  3. # Query a router about its memory pools and create MRTG cfg file for the pools
  4. #
  5. # Author: Dimitrios Stergiou <dste@intranet.gr> , 25/10/00
  6. # Version : 1.0
  7. #
  8. # Usage: ./create-cfg-mem.pl cisco_hostname
  9. #
  10. # 1.0 Initial version, basic functionality
  11. #-----------------------------------------------
  12. # Import libraries
  13. use lib "/home/alexander1/dste/cisco";
  14. use MRTG_lib "2.090006";
  15. use SNMP_Session "0.77";
  16. use BER "0.77";
  17. use SNMP_util "0.77";
  18. use locales_mrtg "0.07";
  19. # Suppress warnings
  20. $SNMP_Session::suppress_warnings = 3;
  21. # Locate how many memory pools the router has
  22. for ($i = 1; $i <= 5; $i++) {
  23. $command = snmpget($ARGV[0], "enterprises.9.9.48.1.1.1.2.$i");
  24. if ($command eq "1") { push @pools, $i; }
  25. }
  26. # loop through pools and find 
  27. # 1) pool names
  28. # 2) pool usage
  29. # 3) pool availability
  30. # maximum pool capacity is defined as: PoolSizeUsed + PoolSizeFree
  31. foreach $pool (@pools) {
  32. @memtype = snmpget($ARGV[0], "enterprises.9.9.48.1.1.1.2.$pool");
  33. if ($memtype[0] eq "I/O") { $memtype[0]="IO"; }
  34. $target = "$ARGV[0]"."_"."$memtype[0]";
  35. @pu = snmpget($ARGV[0], "enterprises.9.9.48.1.1.1.5.$pool");
  36. @pf = snmpget($ARGV[0], "enterprises.9.9.48.1.1.1.6.$pool");
  37. $maxbytes = $pu[0]+$pf[0];
  38. print<<EOF
  39. Target[$target]: `/home/alexander1/dste/cisco/getmem.pl $ARGV[0] $pool`
  40. Title[$target]: $nname memory used 
  41. MaxBytes[$target]: $maxbytes
  42. Unscaled[$target]: dwmy
  43. PageTop[$target]: <H1> $nname memory used </H1>
  44. Suppress[$target]: y
  45. LegendI[$target]:  kbytes used
  46. LegendO[$target]:
  47. Legend1[$target]:  kbytes used
  48. Legend2[$target]:
  49. YLegend[$target]:  kbytes used
  50. ShortLegend[$target]:  used
  51. Options[$target]: gauge,growright
  52. # ===================================
  53. EOF
  54. }