SHELL脚本编程----ps分析-统计VSZ,RSS各自总和

描述

假设命令运行的结果我们存储在nowcoder.txt里,格式如下:

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

root 231 0.0 1.5 166576 62740 ? Ss 2020 15:15 /lib/systemd/systemd-journald

root 237 0.0 0.0 0 0 ? S< 2020 2:06 kworker/0:1H

root 259 0.0 0.0 45004 3416 ? Ss 2020 0:25 /lib/systemd/systemd-udevd

root 476 0.0 0.0 0 0 ? S< 2020 0:00 edac-poller

root 588 0.0 0.0 276244 2072 ? Ssl 2020 9:49 /usr/lib/accountsservice/accounts-daemon

message+ 592 0.0 0.0 42904 3032 ? Ss 2020 0:01 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation

root 636 0.0 0.0 65532 3200 ? Ss 2020 1:51 /usr/sbin/sshd -D

daemon 637 0.0 0.0 26044 2076 ? Ss 2020 0:00 /usr/sbin/atd -f

root 639 0.0 0.0 29476 2696 ? Ss 2020 3:29 /usr/sbin/cron -f

root 643 0.0 0.0 20748 1992 ? Ss 2020 0:26 /lib/systemd/systemd-logind

syslog 645 0.0 0.0 260636 3024 ? Ssl 2020 3:17 /usr/sbin/rsyslogd -n

root 686 0.0 0.0 773124 2836 ? Ssl 2020 26:45 /usr/sbin/nscd

root 690 0.0 0.0 19472 252 ? Ss 2020 14:39 /usr/sbin/irqbalance --pid=/var/run/irqbalance.pid

ntp 692 0.0 0.0 98204 776 ? Ss 2020 25:18 /usr/sbin/ntpd -p /var/run/ntpd.pid -g -u 108:114

uuidd 767 0.0 0.0 28624 192 ? Ss 2020 0:00 /usr/sbin/uuidd --socket-activation

root 793 0.0 0.0 128812 3148 ? Ss 2020 0:00 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;

www-data 794 0.0 0.2 133376 9120 ? S 2020 630:57 nginx: worker process

www-data 795 0.0 0.2 133208 8968 ? S 2020 633:02 nginx: worker process

www-data 796 0.0 0.2 133216 9120 ? S 2020 634:24 nginx: worker process

www-data 797 0.0 0.2 133228 9148 ? S 2020 632:56 nginx: worker process

web 955 0.0 0.0 36856 2112 ? Ss 2020 0:00 /lib/systemd/systemd --user

web 956 0.0 0.0 67456 1684 ? S 2020 0:00 (sd-pam)

root 1354 0.0 0.0 8172 440 tty1 Ss+ 2020 0:00 /sbin/agetty --noclear tty1 linux

root 1355 0.0 0.0 7988 344 ttyS0 Ss+ 2020 0:00 /sbin/agetty --keep-baud 115200 38400 9600 ttyS0 vt220

root 2513 0.0 0.0 0 0 ? S 13:07 0:00 kworker/u4:1

root 2587 0.0 0.0 0 0 ? S 13:13 0:00 kworker/u4:2

root 2642 0.0 0.0 0 0 ? S 13:17 0:00 kworker/1:0

root 2679 0.0 0.0 0 0 ? S 13:19 0:00 kworker/u4:0

root 2735 0.0 0.1 102256 7252 ? Ss 13:24 0:00 sshd: web priv

web 2752 0.0 0.0 102256 3452 ? R 13:24 0:00 sshd: web@pts/0

web 2753 0.5 0.1 14716 4708 pts/0 Ss 13:24 0:00 -bash

web 2767 0.0 0.0 29596 1456 pts/0 R+ 13:24 0:00 ps aux

root 10634 0.0 0.0 0 0 ? S Nov16 0:00 kworker/0:0

root 16585 0.0 0.0 0 0 ? S< 2020 0:00 bioset

root 19526 0.0 0.0 0 0 ? S Nov16 0:00 kworker/1:1

root 28460 0.0 0.0 0 0 ? S Nov15 0:03 kworker/0:2

root 30685 0.0 0.0 36644 2760 ? Ss 2020 0:00 /lib/systemd/systemd --user

root 30692 0.0 0.0 67224 1664 ? S 2020 0:00 (sd-pam)

root 32689 0.0 0.0 47740 2100 ? Ss 2020 0:00 /usr/local/ilogtail/ilogtail

root 32691 0.2 0.5 256144 23708 ? Sl 2020 1151:31 /usr/local/ilogtail/ilogtail

现在需要你统计VSZ,RSS各自的总和(以M兆为统计),输出格式如下

MEM TOTAL

VSZ_SUM:3250.8M,RSS_SUM:179.777M

具体代码实现:

bash 复制代码
#!/bin/bash

awk '{vsz+=$5;rss+=$6} END{print("MEM TOTAL\nVSZ_SUM:" vsz/1024 "M,RSS_SUM:" rss/1024 "M")}' nowcoder.txt

解题思路:

1.使用awk取出第五个域和第六个域的值,做累加

2.按题目要求输出累加的结果(题目要求以M兆为统计,记得累加结果除1024)

相关推荐
xiaoye-duck14 分钟前
《C++ 项目:手写大模型接入 SDK》LLMManager架构设计与实现
开发语言·网络·c++·语言模型
say_fall27 分钟前
【AI大模型】MCP 模型上下文协议:客户端-服务器架构、JSON-RPC 消息与能力协商、工具发现与调用链路、与函数调用的分工
服务器·人工智能·架构
andxe1 小时前
工业级 PoE 交换机选型指南:破解边缘部署四大核心难题
运维·网络·安全·光通信·交换机
Decay__2 小时前
14_MySQL 高可用与容灾架构 —— MGR / InnoDB Cluster / Keepalived+VIP / 双主 / 读写分离 / 两地三中心
运维·数据库·sql·mysql·架构
木子欢儿3 小时前
国内 macOS/Linux 安装 rust
linux·运维·服务器·macos·rust
say_fall3 小时前
【Linux网络编程】计算机网络基础:局域网与广域网、OSI七层模型与TCP/IP五层模型、封装解包与MAC/IP地址、端口号与socket编程接口
linux·网络·tcp/ip·计算机网络·信息与通信
迪菲赫尔曼3 小时前
【基础篇 26】第一次在服务器完成训练:准备数据、断线继续、检查成果与备份
运维·服务器·人工智能·机器学习·计算机视觉
进击的荆棘3 小时前
Linux系统——线程同步与互斥
linux·运维·服务器·策略模式·同步·互斥·posix
橙橙笔记4 小时前
QT的学习第四部分
linux·qt·学习·音视频
.道阻且长.4 小时前
Linux基本开发工具:gdb和cgdb的使用
linux·运维·服务器·开发语言