LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 789|回复: 5

怎么显示指定的几个进程使用的内存总和

[复制链接]
发表于 2007-4-24 17:24:59 | 显示全部楼层 |阅读模式
比如说显示存内使用大于3的进程: ps aux|awk '$4>3{print}'
apache    2090  0.1  3.6  31448  9752 ?        S    Apr23   2:34 /usr/sbin/httpd
apache    2091  0.1  3.5  31156  9684 ?        S    Apr23   2:41 /usr/sbin/httpd
apache    2092  0.1  3.4  30916  9288 ?        S    Apr23   2:51 /usr/sbin/httpd
apache    2098  0.1  3.2  30296  8880 ?        S    Apr23   2:45 /usr/sbin/httpd
apache    2099  0.1  3.5  31384  9572 ?        S    Apr23   2:50 /usr/sbin/httpd
apache    2102  0.1  3.2  30264  8840 ?        S    Apr23   2:46 /usr/sbin/httpd
apache    2103  0.1  3.3  30808  9044 ?        S    Apr23   2:41 /usr/sbin/httpd
现在我要显示存内使用大于3的进程的内存总和.就是把$4全加起来....用awk可以做到吗
发表于 2007-4-24 17:31:05 | 显示全部楼层
完全可以。
ps auk | awk 'BEGIN{sum = 0}
$4 > 3 {sum += $4}
END{print sum}'
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-4-24 17:55:31 | 显示全部楼层
3Q非常感谢
回复 支持 反对

使用道具 举报

发表于 2007-4-25 21:05:47 | 显示全部楼层
ps aux | awk '{if($4>3){i+=$4}}END{print i}'
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-4-28 10:21:07 | 显示全部楼层
如果把ps aux|awk '{if($4>3){i+=$4}}END{print i}}'带到脚本里面去.
怎么能把其中的3做为参数呢
我写成下面的方法不行
#!/bin/bash
read A
ps aux|awk '{if($4>$A){i+=$4}}END{print i}}'
回复 支持 反对

使用道具 举报

发表于 2007-4-28 17:56:59 | 显示全部楼层
我已经在另一个贴子回答了。你可以参考一下awk的书籍。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表