shell查看内存占用

查看内存占用:

#!/bin/bash

# 获取内存总量和已用内存(以KB为单位)
total_mem=$(grep MemTotal /proc/meminfo | awk '{print $2}')
used_mem=$(grep Active: /proc/meminfo | grep -v Inactive | awk '{print $2}')
# 注意:这里使用了Active内存作为已用内存的示例,但它可能不完全等同于传统意义上的“已用”内存。
# 对于更准确的“已用”内存计算,可能需要结合其他字段(如Cached、Buffers等)进行计算。
# 但为了简化示例,这里只使用Active内存。

# 将内存从KB转换为MB(可选,取决于你想要的精度)
total_mem_mb=$(echo "$total_mem / 1024" | bc)
used_mem_mb=$(echo "$used_mem / 1024" | bc)

# 计算内存使用率
mem_usage=$(echo "scale=2; $used_mem_mb / $total_mem_mb * 100" | bc)

# 检查内存使用率是否超过80%
if (( $(echo "$mem_usage > 80" | bc -l) )); then
    echo "内存使用率已超过80%"
else
    echo "内存使用率未超过80%"
fi
 

-----------------------------------------------------

#!/bin/bash

# 获取总内存和可用内存(以KB为单位)
total_memory=$(grep MemTotal /proc/meminfo | awk '{print $2}')
available_memory=$(grep MemAvailable /proc/meminfo | awk '{print $2}')

# 将内存从KB转换为MB(可选,但通常更直观)
total_memory_mb=$(echo "$total_memory / 1024" | bc)
available_memory_mb=$(echo "$available_memory / 1024" | bc)

# 计算当前内存使用率(百分比)
# 注意:这里我们直接使用MB来计算,以避免大数运算中的精度问题
memory_usage_percent=$(echo "scale=2; 100 - ($available_memory_mb * 100 / $total_memory_mb)" | bc)

# 去掉百分号并转换为整数(如果需要与整数比较)
# 但在这个例子中,我们保留小数进行比较,因为bc已经给出了浮点数结果
memory_usage_int=${memory_usage_percent%.*}  # 如果确实需要整数比较,可以取消注释并使用此行

# 检查内存使用率是否超过80%
# 注意:由于memory_usage_percent是浮点数,我们需要用bc进行比较
if (( $(echo "$memory_usage_percent > 80" | bc -l) )); then
  echo "当前内存使用率超过80%"
else
  echo "当前内存使用率未超过80%"
fi

------------------------------------------------------------------------------------

#!/bin/bash

# 使用 awk 从 free -h 的输出中提取 "used" 和 "total" 内存值
# 假设 free -h 的输出格式是稳定的,且 Mem: 行是我们关心的
# 输出格式示例:
#               total        used        free      shared  buff/cache   available
# Mem:           7.8G        2.1G        3.2G        123M        2.5G        5.3G

# 提取 Mem: 行的 "used" 和 "total" 值
memory_info=$(free -h | awk '/^Mem:/{print $2, $3}')

# 将输出分割为两个变量
read -r total_memory used_memory <<< "$memory_info"

# 打印结果
echo "Total Memory: $total_memory"
echo "Used Memory: $used_memory"

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值