Blame contrib/meminfo/memory.pl

Packit 667938
#!/usr/bin/perl
Packit 667938
# This small utility is used to collect the available memory and
Packit 667938
# used memory. For free memory, it sums the free, cached and buffers.
Packit 667938
Packit 667938
# You must enable the "gauge" feature to have a proper graph
Packit 667938
# as those numbers do not grow
Packit 667938
#
Packit 667938
# Colin Tinker
Packit 667938
# g1gsw@titanic.demon.co.uk
Packit 667938
Packit 667938
# setup local vars
Packit 667938
Packit 667938
my($machine);
Packit 667938
Packit 667938
# Enter default macine name here
Packit 667938
Packit 667938
$machine = "g1gsw.ampr.org";
Packit 667938
Packit 667938
# This allows command args to override defaults listed above
Packit 667938
Packit 667938
if  (scalar(@ARGV) > 1 ) 
Packit 667938
    {
Packit 667938
    print("USAGE: memory.pl {machine}\n");
Packit 667938
    exit(-1);
Packit 667938
    }     
Packit 667938
Packit 667938
    if  ($ARGV[0] ne '' && $ARGV[0] ne '#')
Packit 667938
	{
Packit 667938
Packit 667938
        $machine = $ARGV[0];
Packit 667938
        }
Packit 667938
Packit 667938
# Calculate free memory
Packit 667938
Packit 667938
    $getfree = `cat /proc/meminfo | grep Mem:`;
Packit 667938
    $getfree =~ /^Mem:\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)/;
Packit 667938
Packit 667938
# Each (\D+) = $1 or $2 or $3 etc
Packit 667938
Packit 667938
    $outfree = $3;
Packit 667938
    $outbuffers = $5;
Packit 667938
    $outcached = $6;
Packit 667938
Packit 667938
# Total free memory
Packit 667938
Packit 667938
    $gettotal = $outfree+$outcached+$outbuffers;
Packit 667938
    print $gettotal."\n";
Packit 667938
Packit 667938
# Get used memory free
Packit 667938
Packit 667938
    $getused = `cat /proc/meminfo | grep Swap:`;
Packit 667938
    $outused = $1-$gettotal;
Packit 667938
    print $outused."\n";
Packit 667938
Packit 667938
# Get uptime
Packit 667938
Packit 667938
    $getuptime = `/usr/bin/uptime`;
Packit 667938
Packit 667938
# Parse though getuptime and get data
Packit 667938
    $getuptime =~ /^\s+(\d{1,2}:\d{2}..)\s+up\s+(\d+)\s+(\w+),/;
Packit 667938
Packit 667938
#Print getuptime data for mrtg
Packit 667938
Packit 667938
    print $2." ".$3."\n";
Packit 667938
   
Packit 667938
# Print machine name for mrtg
Packit 667938
Packit 667938
    print $machine."\n";