#!/bin/ksh # set -x # # Written by Yves Dorfsman, on Sep 8 1998 # # Need this for hpux for the ps command export UNIX95=yes export PS_PERSONALITY=POSIX # Function definitions function split_line { for i in $* do echo $i done } function div_by_1k { split_line 3 k $1 1024 / p |dc } # Script begin... # Check if we have an arg, if we do we grep on it if [[ ! -z "$1" ]] ; then PROC_ARG="grep $1" SHAR_ARG="$PROC_ARG" PATTERN="for pattern $1" else PROC_ARG="tail +2" SHAR_ARG="tail +4" PATTERN="" fi # Do ps and add vsz echo -n "Total process memory: " PROCESS_MEM=$(ps -A -o 'vsz user group comm args' | $PROC_ARG |\ awk 'BEGIN {print 0} {print $1 " +"} END {print "p"}' |dc) # vsz is in KB, so convert in MB PROCESS_MEM=$(div_by_1k $PROCESS_MEM) echo "$PROCESS_MEM MB $PATTERN" # Shared memory SHARED_MEM=$(ipcs -mb | $SHAR_ARG |awk 'BEGIN {print 0} {print $7 " +"} \ END {print "p"}' | dc) # Comes in bytes, so convert in MB SHARED_MEM=$(div_by_1k $SHARED_MEM) SHARED_MEM=$(div_by_1k $SHARED_MEM) echo "SHARED MEMORY: $SHARED_MEM MB $PATTERN"