0

さて、私はプロセスの個々の OID を掘り出し、それぞれのメモリ使用量を取得できましたが、問題はプロセス全体の使用量を取得する方法です。問題は、個々のプロセスの使用状況の OID が 1.3.6.1.2.1.25.5.1.1.2.X であることです
。ここで、X は、プロセスを識別するために使用される任意の番号にすることができ、プロセスにさらに困難を加えます。順序どおりではありません。たとえば、次の順序で OID を持つことができます

1.3.6.1.2.1.25.5.1.1.1.1 = 整数: 971526993 1.3.6.1.2.1.25.5.1.1.1.4 = 整数: 3562884 1.3.6.1.2.1.25.5.1.1.1.296 = 整数: 496 1.3.6.1.2.1 .25.5.1.1.1.340 = 整数: 12804 1.3.6.1.2.1.25.5.1.1.1.344 = 整数: 68178 1.3.6.1.2.1.25.5.1.1.1.348 = 整数: 40 1.3.6.1.2.1.25.5.1.1. 1.372 = 整数: 3535 1.3.6.1.2.1.25.5.1.1.1.424 = 整数: 3985009 1.3.6.1.2.1.25.5.1.1.1.436 = 整数: 27875212 1.3.6.1.2.1.25.5.1.1.1.440 = 721 1.3.6.1.2.1.25.5.1.1.1.592 = 整数: 4820



等々 。. .

現在、私のperlスクリプトは次のようなものです:

      my ($session, $error) = Net::SNMP->session(
           -hostname  => shift || 'hostname',
              -community => shift || 'public',
      );

      if (!defined $session) {
                 printf "ERROR: %s.\n", $error;
                    exit 1;
            }
      //$OId_number will hold the OId of the particular process       
      my $result = $session->get_request(-varbindlist => [ $OID_number ],);

      if (!defined $result) {
                       printf "ERROR: %s.\n", $session->error();
                          $session->close();
                             exit 1;
       }

       printf "The Memory allocated  for process is  '%s' is %s.\n",
       $session->hostname(), $result->{$OID_number};
       $session->close();
       exit 0;
4

1 に答える 1

0

Net::SNMP の get_bulk_requestを使用するのはどうですか? 1 回の要求ですべてのデータを取得する必要があります。

于 2012-01-16T18:39:23.030 に答える