shell题解 | ps分析-统计VSZ,RSS各自总和

ps分析-统计VSZ,RSS各自总和

https://www.nowcoder.com/practice/7094b5f96e1a4c998ce01baf407beee6

#!/bin/bash

# 分析文本内容
# USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
# root         1  0.0  0.1  37344  4604 ?        Ss    2020   2:13 /sbin/init

# 业务知识
# 这是 ps 命令输出的结果
#     VSZ: 虚拟内存大小(在这个例子中是 37344 KB)
#     RSS: 实际内存使用(在这个例子中是 4604 KB)


# 问题提炼:统计VSZ,RSS各自的总和(以M兆为统计)
# 输出的格式:
# MEM TOTAL   直接打印
# VSZ_SUM:3250.8M,RSS_SUM:179.777M

# 思路:
# VSZ 在第5列,RSS在第6列
# awk  两个变量 分别统计 VSZ 和 RSS
# 1024KB = 1MB   bit--B--KB---MB---GB----TB   汇总后的KB 除以 1024 得到对应的MB 显示

grep -v 'USER' nowcoder.txt |
awk '
    BEGIN{
        vsz_sum = 0
        rss_sum = 0
    }
    {
        vsz_sum += $5
        rss_sum += $6
    }
    END{
        print "MEM TOTAL"
        printf("VSZ_SUM:%0.1fM", vsz_sum/1024)
        printf ","
        printf("RSS_SUM:%0.3fM", rss_sum/1024)
    } 
' 

END

全部评论

相关推荐

陆续:不可思议 竟然没那就话 那就我来吧 :你是我在牛客见到的最美的女孩
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务