#
#	a:	Analyze number of system/user processes and system load.
#	 	Written by Leor Zolman, 3/91
#
#	usage:
#		a
#
# assumes:
#	1) "uptime" command (equivalent to "w -t") is available
#	2) printer processes are all run with user-id "lp"
#

echo
uptime
echo
echo Analyzing...

rootpros=`expr \`ps -u root | wc -l \` - 1`
lppros=`expr \`ps -u lp | wc -l \` - 1`

otherpros=`expr $rootpros + $lppros`
totpros=`expr \`ps -e | wc -l \` - 3`

userpros=`expr $totpros - $otherpros`
shpros=`ps -ef | awk '{
 if (($8 == "-sh" || $8 == "-ksh" || $8 == -csh) && $1 != root)
	print
 }' | wc -l`
nonshpros=`expr $userpros - $shpros`
nusers=`expr \`who | awk '{print $1}' | sort | uniq | wc -l\``
int=`expr $userpros / $nusers`
mod100=`expr \`expr $userpros '*' 100 /  $nusers\` % 100`
intnonsh=`expr $nonshpros / $nusers`
mod100nonsh=`expr \`expr $nonshpros '*' 100 /  $nusers\` % 100`
echo

echo "User processes................. $userpros    ($nusers distinct users)"
echo "Avg processes per user......... $int.$mod100"
echo "Avg non-shell procs per user... $intnonsh.$mod100nonsh"
echo "Root processes................. $rootpros"
echo "Printer processes.............. $lppros"
echo "------------------------------------"
echo "TOTAL PROCESSES................ $totpros"

