01.#!/bin/sh
02.mem=`free -m | awk 'NR==2{print $2}'`
03.ps -aux 2>&1 | sort -k 4 -r | awk '$4 ~ /^[0-9]/ && $4>0 {print $4,$11}' | awk '{print $1/100*mem" "$2}' mem=$mem | sort -k 2 | awk '
04.{
05. a[$2] += $1;
06. b[$2]++;
07. total += $1;
08. total++;
09.}
10.END{
11. for(i in a){
12. t=i;
13. gsub(/:|.*\//, "", t);
14. printf "%10s %s\n" ,a[i]"MB", t"["b[i]"]";
15. }
16.print "Memory Total: "mem"MB, used: "total"MB, free: "mem-total"MB."
17.}' mem=$mem | sort -n -r 查看进程占用的内存大小
最新推荐文章于 2026-05-03 03:12:50 发布
本文介绍了一个使用Shell脚本进行内存使用情况分析的方法。该脚本通过调用free命令获取总的内存信息,并利用ps命令查找占用内存较高的进程。通过一系列的awk处理,将进程按其使用的内存大小进行排序并汇总,最终输出各进程所占内存总量及剩余内存等信息。


1210

被折叠的 条评论
为什么被折叠?



