: ########################################################################## # Title : top10 - show top 10 directory users # Author : Heiner Steven # Date : 1994-10-24 # Requires : nawk # Category : System Administration, File Utilities # SCCS-Id. : @(#) top10 1.2 03/12/19 ########################################################################## # Description # ########################################################################## PN=`basename "$0"` # program name VER='1.2' : ${AWK:=nawk} MailDir=/usr/spool/mail usage () { echo >&2 "$PN - show top 10 directory users, $VER (stv '94) usage: $PN [directory ...] If no directory is specified, $MailDir is the default." exit 1 } [ $# -gt 0 -a X"$1" = X"-h" ] && usage # set the default directory [ $# -lt 1 ] && set -- $MailDir ls -l "$@" | $AWK ' (NF == 8) { # example of a line: # -rw------- 1 andrea 286282 Oct 21 11:24 andrea Usage [$3] += $4 # used bytes, username is index Count [$3]++ TotalBytes += $4 TotalFiles++ } END { for ( user in Usage ) { TotalUsers++; printf "%-15s %12d (%d files, %2d%%)\n", \ user, Usage [user], Count [user], \ Usage [user] * 100 / TotalBytes } #printf "%d users, %d files, %d KB\n", \ # TotalUsers, TotalFiles, TotalBytes/1024 } ' | sort -nr +1 | head exit 0