Und wieder 5 Minuten togeschlagen...
Code:
#!/bin/bash
if [ $# -eq 1 ]
then
users=$1
else
users=`cat /etc/passwd | grep -v "^#" | cut -d":" -f1`
fi
for user in $users ; do
mem_total=0
for i in `ps -U $user ho size` ; do
mem_total=$(($i + $mem_total))
done
[ $mem_total -gt 0 ] && echo "$user: ${mem_total}kb ($(($mem_total/1024))MB)"
done
Ohne Parameter gibt dir das Skript die komplette Userliste aus (so wie die for-Schleife im vorigen Post), alternativ kannst du das Skript mit genau einem Usernamen aufrufen, dann bekommst du nur den Speicherverbrauch dieses Benutzers.
Code:
$ mem_total foo
foo: 268748kb (262MB)
$ mem_total
root: 38984kb (38MB)
daemon: 248kb (0MB)
lp: 1104kb (1MB)
www-data: 2780kb (2MB)
Debian-exim: 884kb (0MB)
messagebus: 372kb (0MB)
ntp: 528kb (0MB)
nagios: 260kb (0MB)
hal: 1644kb (1MB)
foo: 12012kb (11MB)
[snip]