memory.pl
上传用户:shbosideng
上传日期:2013-05-04
资源大小:1555k
文件大小:1k
源码类别:

SNMP编程

开发平台:

C/C++

  1. #!/usr/bin/perl
  2. # This small utility is used to collect the available memory and
  3. # used memory. For free memory, it sums the free, cached and buffers.
  4. # You must enable the "gauge" feature to have a proper graph
  5. # as those numbers do not grow
  6. #
  7. # Colin Tinker
  8. # g1gsw@titanic.demon.co.uk
  9. # setup local vars
  10. my($machine);
  11. # Enter default macine name here
  12. $machine = "g1gsw.ampr.org";
  13. # This allows command args to override defaults listed above
  14. if  (scalar(@ARGV) > 1 ) 
  15.     {
  16.     print("USAGE: memory.pl {machine}n");
  17.     exit(-1);
  18.     }     
  19.     if  ($ARGV[0] ne '' && $ARGV[0] ne '#')
  20. {
  21.         $machine = $ARGV[0];
  22.         }
  23. # Calculate free memory
  24.     $getfree = `cat /proc/meminfo | grep Mem:`;
  25.     $getfree =~ /^Mem:s+(d+)s+(d+)s+(d+)s+(d+)s+(d+)s+(d+)/;
  26. # Each (D+) = $1 or $2 or $3 etc
  27.     $outfree = $3;
  28.     $outbuffers = $5;
  29.     $outcached = $6;
  30. # Total free memory
  31.     $gettotal = $outfree+$outcached+$outbuffers;
  32.     print $gettotal."n";
  33. # Get used memory free
  34.     $getused = `cat /proc/meminfo | grep Swap:`;
  35.     $outused = $1-$gettotal;
  36.     print $outused."n";
  37. # Get uptime
  38.     $getuptime = `/usr/bin/uptime`;
  39. # Parse though getuptime and get data
  40.     $getuptime =~ /^s+(d{1,2}:d{2}..)s+ups+(d+)s+(w+),/;
  41. #Print getuptime data for mrtg
  42.     print $2." ".$3."n";
  43.    
  44. # Print machine name for mrtg
  45.     print $machine."n";