*プロセスで消費されるメモリの表示*

877 ワード

#!/bin/sh
mem=`free -m | awk 'NR==2{print $2}'`
ps -aux 2>&1 | sort -k 4 -r | awk '$4 ~ /^[0-9]/ && $4>0 {print $4,$11}' | awk '{print $1/100*mem"   "$2}' mem=$mem | sort -k 2 | awk '
{
   a[$2] += $1;
   b[$2]++;
   total += $1;
   total++;
}
END{
  for(i in a){
    t=i;
    gsub(/:|.*\//, "", t);
    printf "%10s   %s
" ,a[i]"MB", t"["b[i]"]"; } print "Memory Total: "mem"MB, used: "total"MB, free: "mem-total"MB." }' mem=$mem | sort -n -r
実行結果:
[root@Test230 zy]# sh mem.sh 
 3024.17MB   java[17]
   78.96MB   java[1]
   3.948MB   python[1]
   3.948MB   ntpd[1]
   3.948MB   iscsid[1]
   3.948MB   gdmgreeter[1]
Memory Total: 3948MB, used: 3140.92MB, free: 807.08MB.