home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2010 May / Mac Life Ubuntu.iso / casper / filesystem.squashfs / usr / share / doc / librpc-xml-perl / examples / linux.proc.meminfo.xpl < prev   
Encoding:
Extensible Markup Language  |  2008-11-04  |  2.5 KB  |  87 lines

  1. <?xml version="1.0" encoding="iso-8859-1"?>
  2. <!DOCTYPE proceduredef SYSTEM "rpc-method.dtd">
  3. <!--
  4.     Generated automatically by make_method v1.12, Wed Nov  5 03:59:32 2008
  5.  
  6.     Any changes made here will be lost.
  7. -->
  8. <proceduredef>
  9. <name>linux.proc.meminfo</name>
  10. <version>1.0</version>
  11. <signature>struct</signature>
  12. <help>
  13. Read the system's "/proc/meminfo" special file and return the information in
  14. the form of a STRUCT with the following members:
  15.  
  16.         Key         Type     Value
  17.  
  18.         mem_total   INT      Total memory available, in bytes
  19.         mem_used    INT      Total memory currently used, in bytes
  20.         mem_free    INT      Memory remaining, in bytes
  21.         mem_shared  INT      Memory being shared between processes, in bytes
  22.         mem_buffers INT      Number of memory buffers
  23.         mem_cached  INT      Cached memory
  24.         MemTotal    STRING   Total memory, in kB
  25.         MemFree     STRING   Free memory, in kB
  26.         MemShared   STRING   Shared memort, in kB
  27.         Buffers     STRING   Memory buffers, in kB
  28.         Cached      STRING   Cached memory, in kB
  29.         SwapTotal   STRING   Total swap memory, in kB
  30.         SwapFree    STRING   Available swap memory, in kB
  31. </help>
  32. <code language="perl">
  33. <![CDATA[
  34. #!/usr/bin/perl
  35. ###############################################################################
  36. #
  37. #   Sub Name:       linux_proc_meminfo
  38. #
  39. #   Description:    Read the /proc/meminfo on a Linux server and return a
  40. #                   STRUCT with the information.
  41. #
  42. #   Arguments:      None.
  43. #
  44. #   Returns:        hashref
  45. #
  46. ###############################################################################
  47. sub linux_proc_meminfo
  48. {
  49.     use strict;
  50.  
  51.     my (%meminfo, $line, $key, @parts);
  52.     local *F;
  53.  
  54.     open(F, '/proc/meminfo') or
  55.         return RPC::XML::fault->new(501, "Cannot open /proc/meminfo: $!");
  56.  
  57.     while (defined($line = <F>))
  58.     {
  59.         next if ($line =~ /^\s+/);
  60.         chomp $line;
  61.  
  62.         @parts = split(/\s+/, $line);
  63.         $key = shift(@parts);
  64.         if ($key eq 'Mem:')
  65.         {
  66.             @meminfo{qw(mem_total mem_used mem_free mem_shared mem_buffers
  67.                         mem_cached)} = @parts;
  68.         }
  69.         elsif ($key eq 'Swap:')
  70.         {
  71.             @meminfo{qw(swap_total swap_used swap_free)} = @parts;
  72.         }
  73.         else
  74.         {
  75.             chop $key; # Lose the trailing ':'
  76.             $meminfo{$key} = join(' ', @parts);
  77.         }
  78.     }
  79.     close(F);
  80.  
  81.     \%meminfo;
  82. }
  83.  
  84. __END__
  85. ]]></code>
  86. </proceduredef>
  87.