如何在特定用户上运行top命令获取CPU利用率?
答案 0 :(得分:1)
将top
传递给awk
并添加CPU利用率列:
top -b -n 1 -u username | awk 'NR>7 { sum += $9; } END { print sum; }'
awk
命令显示“对于大于第7行的行(从顶部开始),将字段9 $9
中的数字相加,并将其存储在变量sum
中。一旦你走了通过管道top
命令中的所有行,打印出变量sum
中的值。
如果-u
标志在您的系统上无效,您可以使用NR>7
条件坚持用户名搜索:
top -b -n 1 | awk 'NR>7 && $2=="root" { sum += $9 } END { print sum }'
如果您想打印顶部列出的每个用户使用的百分比,您可以查看第二个条件并将总和切换为数组:
top -b -n 1 | awk 'NR>7 {users[$2]+=($9)} END {for(user in users){print user,users[user]}}'
最后一件事。我认为cpu百分比可能需要除以系统中的核心数。就像......我相信这里可能会看到一个大于100的数字。