此代码显示用户的进程负载(%cpu)
ps aux | awk 'NR!=1{print $1}' | sort | uniq | awk '{print "ps aux | grep "$1}' | awk '{printf $0; printf " | awk"; printf "{sum +="; print "$3}" }' | sed "s/{/ '{/g" | sed "s/3}/3} END {print \$1,sum}'/g" > 0.out
chmod 755 0.out
bash 0.out
此代码在某些操作系统(UBUNTU)示例中显示相同的用户: 根11.5 根0 根0 根1.8 根1.3 根0 根1.1
但在某些操作系统示例2上显示不同的用户(uniq): 根11.5 守护进程0 syslog 0 ....
我怎么能只为example2写。我想要diff3rent用户的%cpu。
答案 0 :(得分:2)
您可以将所有内容替换为:
ps ahx -o "%U %C" | awk '
{cpu[$1] += $2}
END {for (user in cpu) {print user, cpu[user]}}
'