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

SNMP编程

开发平台:

C/C++

  1. #!/usr/bin/perl
  2. #
  3. # Copyright (c) 1997 by Carlos Canau <canau@EUnet.pt>, EUnet Portugal.
  4. # All Rights Reserved.
  5. #
  6. # See the file COPYRIGHT in the distribution for the exact terms.
  7. #
  8. $SNMPGet = '/usr/bin/snmpget';
  9. $TableBase = '/store/lib/mrtg/GetSNMPLinesUP/ModemTable';
  10. $Community = "public";
  11. $progname = 'GetSNMPLinesUP.pl';
  12. $Router = $ARGV[0];
  13. $Table = $ARGV[1] || "$TableBase.$Router";
  14. $MAGICLEN = 20;
  15. $UPTIME = "system.sysUpTime.0";
  16. $NAME = "system.sysName.0";
  17. if (!$Router) {
  18.     die "$progname: $progname ROUTER [TableFile]n";
  19. }
  20. $var = "$UPTIME $NAME "; $varlen = 2;
  21. $buzy = 0;
  22. if ( ! -r "$Table") {
  23.        $Table = "$TableBase.$Router";
  24. }
  25. open( TABLE, "$Table" );
  26. while (<TABLE>) {
  27.     chop;
  28.     $var = $var . $_ . " "; $varlen++;
  29.     if ($varlen >= $MAGICLEN) {
  30. open( GET, "$SNMPGet -v 1 $Router $Community $var |" );
  31. while ( <GET> ) {
  32.     chop;
  33. ### printf "---%sn", $_;
  34.     if (/up(1)/) {
  35. $buzy++;
  36.     };
  37. ###     if (/$UPTIME/) {
  38.     if (/^system.sysUpTime/) {
  39. ($dummy, $Uptime) = split(' = ', $_, 9999);
  40.     }
  41. ###     if (/$NAME/) {
  42.     if (/^system.sysName/) {
  43. ($dummy, $Name) = split(' = ', $_, 9999);
  44.     }
  45. }
  46. close ( GET );
  47. $var = ""; $varlen = 0;
  48.     }
  49. }
  50. close( TABLE );
  51. if ($varlen) {
  52.     open( GET, "$SNMPGet -v 1 $Router $Community $var |" );
  53.     while ( <GET> ) {
  54. chop;
  55. ### printf "+++%sn", $_;
  56. if (/up(1)/) {
  57.     $buzy++;
  58. };
  59. ###     if (/$UPTIME/) {
  60. if (/^system.sysUpTime/) {
  61.     ($dummy, $Uptime) = split(' = ', $_, 9999);
  62. }
  63. ###     if (/$NAME/) {
  64. if (/^system.sysName/) {
  65.     ($dummy, $Name) = split(' = ', $_, 9999);
  66. }
  67.     }
  68.     close ( GET );
  69. }
  70. printf "$buzyn";
  71. printf "0n"; # Unused
  72. printf "$Uptimen";
  73. printf "$Namen";