使用 NEt:SNMP 查找 Windows 中的内存利用率总和

发布于 2024-12-27 08:45:03 字数 1480 浏览 3 评论 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 = INTEGER: 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 = 整数:72218 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;

Well , i have digged out individual OIDs for the process and i am able to get the memory usuage for each of them , but the issue is how do i get the total process usuage.
The problem is the OID for individual process usuage is 1.3.6.1.2.1.25.5.1.1.2.X
Now X can be any number used to identify the process and adding more difficulty to it ,
its not in sequence. For example,
I can have OIDs in the following order

1.3.6.1.2.1.25.5.1.1.1.1 = INTEGER: 971526993
1.3.6.1.2.1.25.5.1.1.1.4 = INTEGER: 3562884
1.3.6.1.2.1.25.5.1.1.1.296 = INTEGER: 496
1.3.6.1.2.1.25.5.1.1.1.340 = INTEGER: 12804
1.3.6.1.2.1.25.5.1.1.1.344 = INTEGER: 68178
1.3.6.1.2.1.25.5.1.1.1.348 = INTEGER: 40
1.3.6.1.2.1.25.5.1.1.1.372 = INTEGER: 3535
1.3.6.1.2.1.25.5.1.1.1.424 = INTEGER: 3985009
1.3.6.1.2.1.25.5.1.1.1.436 = INTEGER: 27875212
1.3.6.1.2.1.25.5.1.1.1.440 = INTEGER: 72218
1.3.6.1.2.1.25.5.1.1.1.592 = INTEGER: 4820



and so on . . .

Currently my perl script is something like this :

      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;

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文