shell脚本实现如下:
#!/bin/bash
# 获取所有进程的PID
pids=$(ls /proc | grep -E '^[0-9]+$')
# 初始化变量
total_mem=0
# 循环计算每个进程的内存占用
for pid in $pids
do
# 获取进程的VmRSS值(以KB为单位)
mem=$(grep VmRSS /proc/$pid/status 2>/dev/null | awk '{print $2}')
# 如果VmRSS值存在,则将其加到总内存中
if [[ -n $mem ]]; then
total_mem=$(($total_mem + $mem))
fi
done
# 将总内存转换为MB并输出
echo "Total memory used by all processes: $(($total_mem / 1024)) MB"