ps 可以查看进程的内存占用大小,写一个脚本计算一下所有进程所占用内存大小的和。(提示,使用ps aux 列出所有进程,过滤出RSS那列,然后求和){{{密码回复可见}}}
- #/bin/bash
- #by chenhong 2016.6.13
- j=0
- ps aux | awk '{print $6}' |grep -v RSS >nc.log
- for i in $(cat nc.log)
- do
- j=$(($i+$j))
- done
- echo $j
- rm -rf nc.log
计算的结果实际使用比物理内存+swap还多
你的和我的计算结果是一致的
#!/bin/bash n=`ps aux |wc -l ` sum=0 for i in `seq 2 $n`;do mem=`ps aux|sed -n "$i p"| awk '{print $6}'` sum=$sum+$mem|bc done echo "memused is $sum" ~ 加法计算有误。。。
ps aux|awk -F" " '{print $6}'|grep -v [a-zA-Z]|awk -F " " '{(sum=sum+$1)};END {print sum}'
#!/bin/bash
#
#ps 可以查看进程的内存占用大小,写一个脚本计算一下所有进程所占用内存大小的和。(提示,使用ps aux 列出所有进程,过滤出RSS那列,然后求>和)
b=0
for a in $(ps aux |awk '{print $6}'|grep -v RSS)
do
b=$[$b+$a]
done
echo $b
- #!/bin/bash
- i=`ps aux|awk -F ' ' '{if((NR>1)) print $6}'| awk '{a+=$1}END{print a}'`
- echo $i
- a=$[$i/1024]
- echo $a\MB
ps aux |grep -v 'RSS TTY' |awk '{(sum=sum+$6)};END{print sum}'
#!/bin/bash
sum=0
row=`ps aux |awk '{print $6}'|wc -l`
for i in `seq 2 $row`
do
sum=$[$sum+$i]
done
echo $sum
#!/bin/bash
#Description: This script is to calculate the total memories of all process.
#Author: Jiazhi Yang
#Date: 10/11/2016
#Script Name: calculateallmem_20161110.sh
#先过滤出第六列的值,然后将脚本的输出结果($1)的进行过滤(去掉字母),然后通过sum表达式来统计
ps aux |awk '{print $6}' |grep -v '[a-Z]' |awk '{sum += $1};END{print sum}'
#!/bin/bash
#Description: This script is to calculate the total memories of all process.
#Author: Jiazhi Yang
#Date: 10/11/2016
#Script Name: calculateallmem_20161110.sh
#先过滤出第六列的值,然后将脚本的输出结果($1)的进行过滤(去掉字母),然后通过sum表达式来求和
ps aux |awk '{print $6}' |grep -v '[a-Z]' |awk '{sum += $1};END{print "sum =",sum}'
#!/bin/bash
#Description: This script is to calculate the total memories of all process.
#Author: Jiazhi Yang
#Date: 10/11/2016
#Script Name: calculateallmem_20161110.sh
#先过滤出第六列的值,然后将脚本的输出结果($1)的进行过滤(去掉字母),然后通过sum表达式来求和
ps aux |awk '{print $6}' |grep -v '[a-Z]' |awk '{sum += $1};END{print "sum =",sum}'
#先过滤出第六列的值,然后将脚本的输出结果($1)的进行过滤(去掉字母),然后通过sum表达式来求平均值
ps aux |awk '{print $6}' |grep -v '[a-Z]' |awk '{sum += $1};END{print "average =",sum/NR}'
#求最大值
ps aux |awk '{print $6}' |grep -v '[a-Z]' |awk 'BEGIN{max=0} {if($1>max) max=$1} END{print "max =",max}'
#求最小值
ps aux |awk '{print $6}' |grep -v '[a-Z]' |awk 'BEGIN{min=65535} {if($1<min) min=$1} END{print "min = ",min}'
#!/bin/bash
sum=0
b=`ps aux |awk '{print $6}'|grep -v RSS`
for i in $b
do
sum=$[$sum+$i]
done
echo "内存占用:"$sum"k"
~
# sh -x psmen.sh
+ awk '{print $6}'
+ ps aux
+ grep -v '^[RSS|0]'
+ awk 'BEGIN{mem=0}{mem+=$1}END{print mem}'
141496
编辑回复