9月26日shell脚本练习

回复 收藏

ps 可以查看进程的内存占用大小,写一个脚本计算一下所有进程所占用内存大小的和。(提示,使用ps aux 列出所有进程,过滤出RSS那列,然后求和){{{密码回复可见}}}

2013-09-26 09:28 举报
已邀请:
0

漠林sky

赞同来自:

学习
0

xiaoweili

赞同来自:

学习学习
0

蛀牙宅

赞同来自:

{:4_91:}
0

sallyliang90

赞同来自:

ps aux|awk 'NR>1{sum+=$6}END{print sum}'
0

5as

赞同来自:

see
0

mikema8285

赞同来自:

up
0

liulangren0533

赞同来自:

学习一下
0

dessler

赞同来自:

本帖最后由 dessler 于 2016-6-13 15:19 编辑
  1. #/bin/bash
  2. #by chenhong 2016.6.13
  3. j=0
  4. ps aux | awk '{print $6}' |grep -v RSS >nc.log
  5. for i in $(cat nc.log)
  6. do
  7. j=$(($i+$j))
  8. done
  9. echo $j
  10. rm -rf nc.log

计算的结果实际使用比物理内存+swap还多
你的和我的计算结果是一致的
0

贰零壹陆

赞同来自:

xuei
0

weifan

赞同来自:

本帖最后由 weifan 于 2016-6-14 14:52 编辑

#!/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" ~                        加法计算有误。。。
0

hsm

赞同来自:

学习
0

945458610

赞同来自:

1
0

xzzlamp

赞同来自:

11
0

Toornix

赞同来自:

看下答案
0

jonnylin

赞同来自:

学习
0

cj2017

赞同来自:

求和...
0

kevinjin

赞同来自:

求解答
0

wy1112980

赞同来自:

ps aux|awk '{(tot=tot+$6)};END {print tot}'
0

午夜DJ

赞同来自:

ps aux |awk -F ' ' '{print $6}' | grep '[0-9]' |awk '{(sum+=$1)};END {print sum}'
0

Bullet_Point

赞同来自:

1
0

Supernatural - 个人博客:http://www.cnblogs.com/yshan13/

赞同来自:

ps aux|awk '{(sum=sum+$6)};END{print sum}'
0

liqian

赞同来自:

开始学习啦
0

ChrisLinux

赞同来自:

求和用循环加吧
0

15812926028

赞同来自:

1
0

riverxyz

赞同来自:

#/bin/bash
ps aux|awk -F" " '{print $6}'|grep -v [a-zA-Z]|awk -F " " '{(sum=sum+$1)};END {print sum}'
0

linuxcp

赞同来自:

{:4_91:}
0

J_C

赞同来自:


#!/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

0

dongteng

赞同来自:

学习
0

a_leon

赞同来自:

  1. #!/bin/bash
  2. i=`ps aux|awk -F ' ' '{if((NR>1)) print $6}'| awk '{a+=$1}END{print a}'`
  3. echo $i
  4. a=$[$i/1024]
  5. echo $a\MB
0

a1138665328

赞同来自:

kankan
0

guiguishell

赞同来自:

本帖最后由 guiguishell 于 2016-9-12 10:04 编辑

ps aux |grep -v 'RSS TTY' |awk '{(sum=sum+$6)};END{print sum}'
0

gfzq0901

赞同来自:

1
0

hegeng

赞同来自:

练习

0

13600827194

赞同来自:

看看

0

凌乱

赞同来自:

ps aux |awk -F ' ' '{sum=sum+ $6};END {print sum}'

0

liuyunge

赞同来自:

学习,awk计算还不会

0

linuxs

赞同来自:

1

0

。。。

赞同来自:

看看

0

kw是id

赞同来自:

#!/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

0

qwlp19910807

赞同来自:

ps aux |awk '{print $6}' | grep -v '[a-Z]' | sort -n | awk '{t=t+$1};END{print t}'

0

1ijinna

赞同来自:

1

0

西瓜糖

赞同来自:

#!/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}'

0

西瓜糖

赞同来自:

#!/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}'

0

hyhmnn

赞同来自:

ps aux|awk '{print $6}'|grep -v'RSS'|awk '{sum+=$1};END{print sum}'

0

西瓜糖

赞同来自:

#!/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}'

0

nmzhaoliming

赞同来自:

学习

0

rjx3201

赞同来自:

看看

0

sun330

赞同来自:

#!/bin/bashps aux| awk '{print $6}'|grep -v RSS|awk '{sum += $1};END {print sum}'

0

Ject1992he - linux学习

赞同来自:

学习

0

Youcan

赞同来自:

ps aux |awk '{print $6}'|awk '{(tot=tot+$1)};END{print tot}'

0

loujb

赞同来自:

oK

0

monga

赞同来自:

ps aux |awk '{tot=tot+$6};END {print tot}'

0

大雁

赞同来自:

ps aux |awk '{print $6}'|grep -v "RSS"|awk '{s=s+$1};END{print s}'

0

vanjle

赞同来自:

....

0

xiaojiajia

赞同来自:

学习

0

王斌

赞同来自:

芝麻开门

0

肖永安

赞同来自:

1

0

季山

赞同来自:

学习

0

季山

赞同来自:

#!/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"

~                        

0

成成

赞同来自:

学习

0

阿贤

赞同来自:

学习

0

失落的乐章

赞同来自:

[root@192 ~]# ps aux|awk '{print $6}'|awk '{(sum=sum+$1)};END{print sum}' 

156780

0

杨银根

赞同来自:

ps aux|awk '{print $6}'|sed 's/[a-z]//g'|awk 'BEGIN{(t=0)}{t+=$1}END{print t}'

0

魔王JAS

赞同来自:

looklook

0

aikera

赞同来自:

#!/bin/bashps aux | awk  '{print $6}' | grep -v '^[RSS|0]' | awk 'BEGIN{mem=0}{mem+=$1}END{print mem}'

# sh -x psmen.sh 
+ awk '{print $6}'
+ ps aux
+ grep -v '^[RSS|0]'
+ awk 'BEGIN{mem=0}{mem+=$1}END{print mem}'
141496
0

jiapingbian@sina.com

赞同来自:

a=0

for i in `ps aux |  awk '{print $6}'| grep -v "RSS"`;do a=$[$i+$a];done; echo $a

0

Louiz

赞同来自:

学习。

0

小路55

赞同来自:

ps aux|awk '{sum=sum+$4};END {print $sum}' 

回复帖子,请先登录注册

退出全屏模式 全屏模式 回复
评分
可选评分理由: