############################################################################### # # Sub Name: linux_proc_meminfo # # Description: Read the /proc/meminfo on a Linux server and return a # STRUCT with the information. # # Arguments: None. # # Returns: hashref # ############################################################################### sub linux_proc_meminfo { use strict; my (%meminfo, $line, $key, @parts); local *F; open(F, '/proc/meminfo') or return RPC::XML::fault->new(501, "Cannot open /proc/meminfo: $!"); while (defined($line = <F>)) { next if ($line =~ /^\s+/); chomp $line; @parts = split(/\s+/, $line); $key = shift(@parts); if ($key eq 'Mem:') { @meminfo{qw(mem_total mem_used mem_free mem_shared mem_buffers mem_cached)} = @parts; } elsif ($key eq 'Swap:') { @meminfo{qw(swap_total swap_used swap_free)} = @parts; } else { chop $key; # Lose the trailing ':' $meminfo{$key} = join(' ', @parts); } } close(F); \%meminfo; }