#!/usr/bin/nawk -f # # mps - memory ps for Solaris/SYSV # 15 Jun 2001, asawicki@marrakech.com # BEGIN { PSCMD="/usr/bin/ps -eo vsz,user,pid,comm | sort -rn" printf("%7s\t%10s\t%6s\t%s\n", "SIZE", "USER", "PID", "COMMAND") while( PSCMD|getline ) if($1 != "VSZ" && $1 != 0){ if($1 < 1024) {size=$1; unit=" kb"} else if($1 >= 1024 && $1 < 1024*1024) {size=int(($1+1023)/1024); unit=" Mb"} else if($1 >= 1024*1024 ) { size=int(((($1+1023)/1024)+1023)/1024); unit="!Gb"} printf("%4d%s\t%10s\t%6d\t%s\n", size, unit, $2, $3, $4) } close(PSCMD) }