ps 可以查看进程的内存占用大小,写一个脚本计算一下所有进程所占用内存大小的和。(提示,使用ps aux 列出所有进程,过滤出RSS那列,然后求和){{{密码回复可见}}}
0
本帖最后由 chekir 于 2013-9-26 10:01 编辑
1496
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
848
0
892
0
0
0
0
844
2004
1188
3284
3288
1280
580
584
580
836
584
580
576
4436
2028
4372
2020
3252
1172
1000
844
- [root@localhost sbin]# ps aux |awk '{print $6}' |sed 's/[a-Z]//g' |awk '{(tot=tot+$1)};END{print tot}'
- 39524
- #! /bin/bash
- ps aux |awk '{print $6}' |sed 's/[a-Z]//g' |awk '{(tot=tot+$1)};END{print tot}'
- 或者:
- ps aux |awk '{print $6}' |grep -v '[a-Z]' |awk '{(tot=tot+$1)};END{print tot}'
- 亦或:
- ps aux |awk '{print $6}' |awk '{(tot=tot+$1)};END{print tot}'
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
848
0
892
0
0
0
0
844
2004
1188
3284
3288
1280
580
584
580
836
584
580
576
4436
2028
4372
2020
3252
1172
1000
844
0
本帖最后由 第六感 于 2013-9-26 10:41 编辑
#!/bin/bash
#20139926
#计算内存大小
let sum=0
for i in ` ps aux|awk -F ' ' '{print $6}'|grep -v 'RSS'`
do sum=$[$i+$sum]
done
echo $sum
#!/bin/bash
#20139926
#计算内存大小
let sum=0
for i in ` ps aux|awk -F ' ' '{print $6}'|grep -v 'RSS'`
do sum=$[$i+$sum]
done
echo $sum
0
本帖最后由 wikilike7 于 2013-9-26 11:13 编辑
ps aux |awk '{print $6}'|grep -v 'RSS' | awk '{sum += $1};END {print sum}'
PS aux |awk '{print $6}' |sed '/RSS/d' |awk '{sum += $1};END {print sum}'
PS aux |awk '{print $6}' |sed 's/RSS//' |awk '{sum += $1};END {print sum}'
ps aux |awk '{print $6}'|grep -v 'RSS' | awk '{sum += $1};END {print sum}'
PS aux |awk '{print $6}' |sed '/RSS/d' |awk '{sum += $1};END {print sum}'
PS aux |awk '{print $6}' |sed 's/RSS//' |awk '{sum += $1};END {print sum}'
0
我写的还是复杂了,对于语法还是不是很清楚
wikilike7 发表于 2013-9-26 10:40
ps aux |awk '{print $6}'|grep -v 'RSS' | awk '{sum += $1};END {print sum}'
PS aux |awk '{print $ ...
我写的还是复杂了,对于语法还是不是很清楚
0
#!/bin/bash
sum=0
for i in `ps aux|awk -F' ' '{print $6}'|grep ^[0-9]`; do
sum=$[$sum+$i]
done
echo $sum
sum=0
for i in `ps aux|awk -F' ' '{print $6}'|grep ^[0-9]`; do
sum=$[$sum+$i]
done
echo $sum
0
#! /bin/bash
ps -aux |awk -F ' ' '{print $6}' |grep -v RSS > 1.txt
sum=0
for i in `cat 1.txt`
do
echo $i
sum=$[$sum+$i]
done
echo "Is the sum of all numbers:" $sum
ps -aux |awk -F ' ' '{print $6}' |grep -v RSS > 1.txt
sum=0
for i in `cat 1.txt`
do
echo $i
sum=$[$sum+$i]
done
echo "Is the sum of all numbers:" $sum
0
#! /bin/bash
sum=0
for i in `ps aux |awk '$6~/[0-9]/ {print $6}'` ; do
sum=$[$sum+$i]
done
echo $sum
sum=0
for i in `ps aux |awk '$6~/[0-9]/ {print $6}'` ; do
sum=$[$sum+$i]
done
echo $sum
0
本帖最后由 游夜 于 2014-9-3 19:09 编辑
#!/bin/bash
sum=0
for line in `ps aux|awk '{print $6}'|grep -v [^0-9]`;do
sum=$[$sum+$line]
done
echo $sum
#!/bin/bash
sum=0
for line in `ps aux|awk '{print $6}'|grep -v [^0-9]`;do
sum=$[$sum+$line]
done
echo $sum
0
#!/bin/bash
sum=0
rss=`ps aux | awk '{print $6}'`
for size in $rss
do
if [ $size != 'RSS' ]
then
sum=$[$size+$sum]
fi
done
echo $sum
sum=0
rss=`ps aux | awk '{print $6}'`
for size in $rss
do
if [ $size != 'RSS' ]
then
sum=$[$size+$sum]
fi
done
echo $sum
0
#!/bin/bash
#writen by alex.zhu on 2014.11.01 about "awk"
ps aux | awk '{print $6}'|awk '{sum += $1};END {print sum}'
#writen by alex.zhu on 2014.11.01 about "awk"
ps aux | awk '{print $6}'|awk '{sum += $1};END {print sum}'
0
- #!/bin/bash
- # The calculation memory usage script.
- # Writen by Wangxiaoqiang 2014-11-21.
- COUNT=($(ps aux | awk '{print $6}' | grep -v '^[RSS|0]'))
- length=${#COUNT[@]}
- SUM=0
- for ((i=0;i<$length;i++))
- {
- KEY=`expr ${COUNT[$i]} \+ ${SUM}`
- SUM=${KEY}
- }
- echo "The sum of memory : ${SUM}"
0
#!/bin/bash
memtotal=0
for i in `ps aux | awk '{ if(NR>=2) { print $6 } }'`
do
memtotal=$[$memtotal+$i]
done
echo $memtotal
memtotal=0
for i in `ps aux | awk '{ if(NR>=2) { print $6 } }'`
do
memtotal=$[$memtotal+$i]
done
echo $memtotal
0
#!/bin/bash
#author:gy
#date:2014-11-28
sum=0
for i in `ps aux | awk '{print $6}'`; do
sum=$[$sum+$i];
done
echo $sum;
#author:gy
#date:2014-11-28
sum=0
for i in `ps aux | awk '{print $6}'`; do
sum=$[$sum+$i];
done
echo $sum;
0
思路大致是对的,将RSS也算进来了,以后应该自己多多检查再发表,看老师答案。
阳光 发表于 2014-11-29 01:27
#!/bin/bash
#author:gy
#date:2014-11-28
思路大致是对的,将RSS也算进来了,以后应该自己多多检查再发表,看老师答案。
0
本帖最后由 wuhen 于 2014-12-9 14:24 编辑
#!/bin/bash
a=`ps aux|awk -F " " '{print $6}'|grep [^a-zA-Z]`
sum=0
for i in $a
do
sum=$[$sum+$i]
done
echo "sum:$sum"
#!/bin/bash
a=`ps aux|awk -F " " '{print $6}'|grep [^a-zA-Z]`
sum=0
for i in $a
do
sum=$[$sum+$i]
done
echo "sum:$sum"
0
ps -aux|awk -F' ' '{print $6}'|grep '^[0-9]'>ww.txt
#!/bin/bash
sum=0
for i in `cat /root/ww.txt`
do
sum=$(($i+$sum))
done
echo the sum:$sum
#!/bin/bash
sum=0
for i in `cat /root/ww.txt`
do
sum=$(($i+$sum))
done
echo the sum:$sum
0
#!/bin/bash
echo "The total memory used of all the processes:"
ps aux|awk '{print $6}'|grep '[1-9]'|awk '{(sum+=$1)}; END {print sum}'
echo "The total memory used of all the processes:"
ps aux|awk '{print $6}'|grep '[1-9]'|awk '{(sum+=$1)}; END {print sum}'
0
#!/bin/bash
# -------------------------------------------------------------------------------
# Filename: amingtest3.sh
# Revision: 1.0
# Date: 2014/12/16
# Author: FUQIANG LI
# Email: 317377106@qq.com
# Notes: aminglinux shell exercises of 2013-09-26
# -------------------------------------------------------------------------------
summem=0;
for i in `ps aux|awk '{print $6}'|grep -v 'RSS'`
do
summem=$[$i+$summem]
done
echo "the system memory used totle is : "$summem
# -------------------------------------------------------------------------------
# Filename: amingtest3.sh
# Revision: 1.0
# Date: 2014/12/16
# Author: FUQIANG LI
# Email: 317377106@qq.com
# Notes: aminglinux shell exercises of 2013-09-26
# -------------------------------------------------------------------------------
summem=0;
for i in `ps aux|awk '{print $6}'|grep -v 'RSS'`
do
summem=$[$i+$summem]
done
echo "the system memory used totle is : "$summem
0
我试了下,过滤掉第一行之后,取值不同,还是老师的答案严谨些
[root@www bash]# ps aux | grep -v 'RSS TTY' |awk '{(sum=sum+$6)};END{print sum}'
MR_K 发表于 2014-12-16 23:19
[root@www bash]# ps aux |awk '{sum+=$6}END {print sum}'
我试了下,过滤掉第一行之后,取值不同,还是老师的答案严谨些
[root@www bash]# ps aux | grep -v 'RSS TTY' |awk '{(sum=sum+$6)};END{print sum}'
0
[root@localhost sbin]# cat 03.sh
#!/bin/bash
ps aux | awk '{print $6}' |grep "[0-9]" |awk '{(sum=sum+$1)}; END {print sum}'
#!/bin/bash
ps aux | awk '{print $6}' |grep "[0-9]" |awk '{(sum=sum+$1)}; END {print sum}'
0
#! /bin/bash
# 计算所有进程所占用内存大小的和
sum=0 --->定义变量sum
for mem in `ps aux |awk '{print $6}' |grep -v 'RSS TTY'` -----> 遍历所有进程并过滤出RSS列的值
do
sum=$[$sum+$mem] ----> 叠加每条进程的RSS值
done
echo "The total memory is $sum""k" ----> 输出sum值
还可以用一条命令完成:
ps aux |grep -v 'RSS TTY' |awk '{(sum=sum+$6)};END{print sum}' ---> 思路:先用ps aux打印出所有进程,然后grep过滤调第一行,最后通过awk筛选出RSS的值并求和
# 计算所有进程所占用内存大小的和
sum=0 --->定义变量sum
for mem in `ps aux |awk '{print $6}' |grep -v 'RSS TTY'` -----> 遍历所有进程并过滤出RSS列的值
do
sum=$[$sum+$mem] ----> 叠加每条进程的RSS值
done
echo "The total memory is $sum""k" ----> 输出sum值
还可以用一条命令完成:
ps aux |grep -v 'RSS TTY' |awk '{(sum=sum+$6)};END{print sum}' ---> 思路:先用ps aux打印出所有进程,然后grep过滤调第一行,最后通过awk筛选出RSS的值并求和
0
本帖最后由 寻@轨迹 于 2015-2-6 16:55 编辑
#! /bin/bash
# Written By yuhui
sum=0
for mem in `ps aux | awk '{print $6}' | grep -v RSS`
do
sum=$[$sum+$mem]
done
echo total memory is $sum k
#! /bin/bash
# Written By yuhui
sum=0
for mem in `ps aux | awk '{print $6}' | grep -v RSS`
do
sum=$[$sum+$mem]
done
echo total memory is $sum k
0
#!/bin/bash
#
a=`ps aux|sed -n '2,$'p|awk '{print $6}'`
sum=0
for i in $a ; do
sum=$[$sum+$i]
done
echo $sum
#
a=`ps aux|sed -n '2,$'p|awk '{print $6}'`
sum=0
for i in $a ; do
sum=$[$sum+$i]
done
echo $sum
0
本帖最后由 对未来有理想 于 2015-3-24 16:30 编辑
因为刚开始学脚本,都没思路,不知道从哪里下手。只会根据题目一步步去理解不会写,看到了答案,没能自己写出脚本,但还是希望把自己理解的写一下
sum首先赋值
ps aux 为了查看进程,awk '{print $6}' 为了选取第6节即RSS列(没意识到awk 可以直接取列,以为一定要有分割符),grep -v 'RSS' 取反,不取‘rss’,刚好取到rss下面的数字,然后$men 一个个取通过三个命令得到的数字。
$sum=$sum+$men,即到达数列相加的目的,得到我们想要的结果!
学习了!
第一以为awk一定要有分割符分出列然后才会被系统截取
第二以为seq 只有我们自己给的数列,没意思到有些情况下得到的数列也可以被使用
因为刚开始学脚本,都没思路,不知道从哪里下手。只会根据题目一步步去理解不会写,看到了答案,没能自己写出脚本,但还是希望把自己理解的写一下
sum首先赋值
ps aux 为了查看进程,awk '{print $6}' 为了选取第6节即RSS列(没意识到awk 可以直接取列,以为一定要有分割符),grep -v 'RSS' 取反,不取‘rss’,刚好取到rss下面的数字,然后$men 一个个取通过三个命令得到的数字。
$sum=$sum+$men,即到达数列相加的目的,得到我们想要的结果!
学习了!
第一以为awk一定要有分割符分出列然后才会被系统截取
第二以为seq 只有我们自己给的数列,没意思到有些情况下得到的数列也可以被使用
0
#!/bin/bash
sum=0
for i in `ps aux|awk '{print $6}'|grep '[0-9]'`
do
sum=$[$sum+$i]
done
echo $sum
sum=0
for i in `ps aux|awk '{print $6}'|grep '[0-9]'`
do
sum=$[$sum+$i]
done
echo $sum
0
本帖最后由 l5211314121 于 2015-4-1 09:23 编辑
ps aux|awk 'BEGIN{sum=0}{sum+=$6}END{print sum}' 不知道这样麻烦不,还请老师指教
ps aux|awk 'BEGIN{sum=0}{sum+=$6}END{print sum}' 不知道这样麻烦不,还请老师指教
编辑回复