9月26日shell脚本练习

回复 收藏

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

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

大仔黑黑

赞同来自:

看看
0

QuietM

赞同来自:

.
0

翟厚翔

赞同来自:

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

此间的少年

赞同来自:

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

Armani

赞同来自:

1
0

Armani

赞同来自:


p1=`ps aux | awk '{print $6}' | grep -v 'RSS'`
m=0
p2=`echo $p1  | sed 's/\n/ /g'`

for i  in  `echo $p2`
do
  m=$[$m+$i]
done
   echo  $m
0

wcy882212

赞同来自:

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

chenqi

赞同来自:

要看答案
0

tjlygdx

赞同来自:

shell
0

xebszw

赞同来自:

1
0

huguihua2002

赞同来自:

look
0

wzwyql

赞同来自:

0

liang1990

赞同来自:

awk '{(sum=sum+$6)};END {print sum}' 1.log
0

李磊

赞同来自:

来看看
0

shajoe

赞同来自:

本帖最后由 shajoe 于 2015-9-21 10:21 编辑

ps aux |awk '{(sum=sum+$6)}; END {print sum}'
效果与答案相同, grep -v 'RSS TTY' 匹配这个有什么含义
0

渐行渐远

赞同来自:

学习
0

放牛

赞同来自:

{:7_173:}
0

qqq998492

赞同来自:

本帖最后由 qqq998492 于 2015-9-25 13:41 编辑

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


0

timfeng3535

赞同来自:

dd
0

乌贼的帽子

赞同来自:

学习
0

wudi61

赞同来自:

学习
0

汤小东

赞同来自:

check
0

rolay8

赞同来自:

本帖最后由 rolay8 于 2015-10-26 16:44 编辑
  1. ps aux | awk '{sum+=$6}END {print "SUM ",sum}'


过滤RSS请问是什么意思呢?
0

oneliang

赞同来自:

看看
0

贾永久

赞同来自:

来来来
0

不怕不怕

赞同来自:

学习一下
0

hlymlv

赞同来自:

回复
0

Shawn

赞同来自:

0

J!_yuan

赞同来自:

本帖最后由 J!_yuan 于 2015-11-20 16:36 编辑

sumlog=`ps -aux|awk '{print $6}'|grep '^[1-9]'`
local sum=0
for lines in `echo $sumlog`
        do
        sum=$[$sum+${lines}]
done
echo $sum
0

J!_yuan

赞同来自:

这个 mem  lines 能在那里看到这些解释呢
0

杭州小白

赞同来自:

ps aux|awk '{print $6}'|grep -v RSS
0

alvinnull

赞同来自:

xuexi
0

yanggang

赞同来自:

参考一下
0

tutu

赞同来自:

o
0

fansze

赞同来自:

{:4_92:}
0

Rohero

赞同来自:

学习
0

Rohero

赞同来自:

awk '{(sum=sum+$6)};END{print sum}'老师,我的这句输出结果是0怎么回事啊?
0

gjc159357

赞同来自:

sss
0

zyos

赞同来自:

#! /bin/bash

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

ldp840611

赞同来自:

看目的地
0

maria

赞同来自:

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

qin521ne

赞同来自:

11
0

石头

赞同来自:

{:4_91:}
0

重庆-刘鹏

赞同来自:

对对答案
0

liaoxin19930812

赞同来自:

#!/bin/bash ps aux|awk '{print $6}'|grep -v "RSS"|awk '{sum+=$1}END{print sum}'
0

ヾSun

赞同来自:

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

YZR

赞同来自:

ps aux | awk ‘NR>1 {a+=$5}END{print a}'
0

我是学渣

赞同来自:

{:4_99:}
0

wanjj

赞同来自:

0

蓝色风暴

赞同来自:

#!/bin/bash

sum=0
ps aux > /tmp/1.txt ; awk '{print $6}' /tmp/1.txt > /tmp/2.txt ; grep -E '^[0-9]+$' /tmp/2.txt > /tmp/3.txt
for i in `cat /tmp/3.txt`
        do
                sum=$[ $sum+$i ]
        done
echo "你系统所有进程占用内存的大小是$sum KB"
rm -rf /tmp/[123].txt
0

15036085170

赞同来自:

#!/bin/bash
list=`ps aux |awk '{print $6}' |grep '[0-9]'`
sum=0
for i in $list
do
    sum=`expr $sum + $i`
done
echo "sum is "$sum
exit
0

pbw19950507

赞同来自:

学习
0

weifeng1463

赞同来自:

ok
0

Burgess

赞同来自:

学习
0

吴天瑞

赞同来自:

学习
0

369666951

赞同来自:

1
0

jinm

赞同来自:

学习
0

hzsnone

赞同来自:

学习下
0

hlymlv

赞同来自:

本帖最后由 hlymlv 于 2016-1-7 19:31 编辑

两个我都试了 ,结果不一样   误差在3k左右
0

loveyouhyf

赞同来自:

#!/bin/bash
##sum of ps aux rss col
##write by 2016-01-08
sum=0
row=$[`ps aux|wc -l`+2]
for ((i=2;i<"$row";i++));do
a=`ps aux|sed -n "$i"p|awk '{print $6}'`
sum=$[$sum+$a]
done
echo "now all of process used $sum KB MEM"
0

陈秋明

赞同来自:

#! /bin/bash sum=0 for i in `ps aux | awk '{print $6}'|grep -v '/RSS/'`; do  sum=$[$sum+$i] done echo $sum
0

prospect

赞同来自:

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

prospect

赞同来自:

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

xteplinux

赞同来自:

{:4_91:}
0

shitukeji

赞同来自:

{:4_91:}
0

HwangChen

赞同来自:

look
0

HwangChen

赞同来自:

老师,这里有个问题,浮点型不能直接计算啊
0

licengceng

赞同来自:

学习
0

小指头

赞同来自:

学习
0

t0ny1988

赞同来自:

#!/bin/bash
ps aux |grep -v RSS |awk -F ' ' {'print $6'} > aux.txt
for i in `cat aux.txt`
do
  echo $i
  sum=$[$sum+$i]
done
  echo $sum
0

casparcc

赞同来自:

1
0

lin19890913

赞同来自:

看看
0

落涧飞鹰

赞同来自:

看看
0

bbcw

赞同来自:

#!/bin/bash
n=`ps aux|awk '{print $6}'|sed 's/RSS/0/g'|wc -l`
ps aux|awk '{print $6}'|sed 's/RSS/0/g'>1.txt
a=0
for i in `seq 1 $n`
do
num=`head -$i ./1.txt|tail -1`
let a=a+num
done
echo $a
0

lin13750529011

赞同来自:

谢谢
0

乐橙306

赞同来自:

  1. [root@aliyun-63 303]# ps  aux |  awk 'NR>=2 {print $6}' | awk  '{sum+=$1}END{print sum}'
  2. 259216
  3. [root@aliyun-63 303]# free  -m
  4.              total       used       free     shared    buffers     cached
  5. Mem:           994        823        170          0        204        411
  6. -/+ buffers/cache:        207        786
  7. Swap:            0          0          0
  8. [root@aliyun-63 303]#
0

zmh0415

赞同来自:

#!/bin/bash
#count number of memory used by process
#writen by minghao
a=`ps aux |awk -F' ' '{print $6}' |grep -n '[1-9]'`
echo $a >1.txt
0

cxiaodian

赞同来自:

good
0

googleqicq

赞同来自:

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

大喵喵66

赞同来自:

看看
0

keluo

赞同来自:

# ps -aux|awk  '{print $6}'|sed '1d'
Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.8/FAQ
0

linux-小莫

赞同来自:

看看
0

vb3328998

赞同来自:

1
0

qiqige

赞同来自:

。。

0

wangzai

赞同来自:

学习
0

linux-小莫

赞同来自:

ps aux |awk '{print $6}'|sed '1d'|awk 'BEGIN {sum=0}{sum=sum+$1}END{print sum}'
0

ggangelo

赞同来自:

#!/bin/bash
##ps sum
#BY Lv.
sum=0
for i in `ps aux |awk -F" " '$6~/[0-9]/ {print $6}'`
do
   sum=$[$sum+$i]
   n=$[sum/1000]
done
echo "$n M"
0

lin790292154

赞同来自:

学习
0

小璇Linux

赞同来自:

学习
0

等风来

赞同来自:

学习
0

linle

赞同来自:

#/bin/bash/
#
#
sum=0
for i in `ps aux |awk -F " " '{print $6}'`
do
sum=$[$i+$sum]
done
echo $sum
0

elvis

赞同来自:

ddd
0

branttsai

赞同来自:

study,tks
0

牛牛牛爱洗澡

赞同来自:

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

stone

赞同来自:

for i in `ps aux|awk '{print $6}'`;do sum=0;sum=$[ $sum + $i ];done;echo $sum
0

beacon

赞同来自:

学习
0

luckytodd

赞同来自:

#!/bin/bash
#ps 可以查看进程的内存占用大小,写一个脚本计算一下所有进程所占用内存大小的和。

#统计所有进程行数包括RSS
ps aux|awk '{print $6}'>/tmp/ram.txt
num_old=`cat /tmp/ram.txt |wc -l`
#除去RSS的行数,和文本内容
num_new=`expr $num_old - 1`
cat /tmp/ram.txt|tail -n $num_new > /tmp/newram.txt
#文件内容求和
sum=0
for i in `seq 1 $num_new`
do
num=`cat /tmp/newram.txt|head -n "$i"|tail -1`
sum=`expr $sum + $num`
done
0

拉卡

赞同来自:

#!/bin/bash
## 查看当前所有进程内存大小和,单位Kb
a=`ps aux |awk '{print $6}' |sed -n '2,$'p |awk '{sum += $1};END {print sum}'`
b=1024
echo $a $b |awk '{print $1/$2}'
0

linuxjishuren

赞同来自:

学习下,很有必要
0

xpgong

赞同来自:

kankan

回复帖子,请先登录注册

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