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