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";
|