#!/usr/local/bin/perl # # $Id: mem 356 2011-09-24 23:25:47Z svnuser $ # # $Log: mem,v $ # Revision 1.1 1998/05/24 05:23:39 merlin # First version checked in CVS # # open(PS, "ps auxww|") || die "Can't run $pscmd: $!\n"; $_=; #Skip header line while () { ($user,$pid,$cpu,$mem,$size,$rss,$tty,$stat,$start,$time,$command)=unpack("A8A6A5A5A6A6A4A4A6A8A*",$_); $process{join("/",$rss,$pid)}=join(" ",$size,$rss,$mem,$pid,$command); } print "RESSIZE RESSUBTOT MEMSIZE MEMSUBTOT %MEM PID COMMAND\n"; print "------- --------- ------- --------- ---- --- -------\n"; foreach $key (reverse sort keys %process) { #print "proc: $key || $process{$key}\n"; ($mem,$memr,$pmem,$pid,$com)=split(/ /,$process{$key},5); $tot+=$mem; $totr+=$memr; printf ("%7u %9u %7u %9u %4.1f %5u %s\n",$memr,$totr,$mem,$tot,$pmem,$pid,$com); }