Shell常用脚本:监控本机内存使用率

107 阅读1分钟

文章目录

方案1 == free命令

请添加图片描述
memoryInfo.sh

#!/bin/bash


totalMemory=$(free | awk 'NR==2{print $2}')
usedMemory=$(free | awk 'NR==2{print $3}')
freeMemory=$(free | awk 'NR==2{print $4}')
cachedMemory=$(free | awk 'NR==2{print $6}')


# echo -e "总内存: $(($totalMemory/1024/1024))GB"
echo -e "总内存: $(printf "%.2f" `echo "scale=2;$totalMemory/1024/1024"|bc`)GB"
echo -e "内存利用率: $(($usedMemory * 100 / $totalMemory)) %"
echo -e "缓存利用率: $(($cachedMemory * 100 / $totalMemory)) %"
echo -e "剩余内存率: $(($freeMemory * 100 / $totalMemory)) %"

请添加图片描述
请添加图片描述

方案2 == /proc/meminfo文件

请添加图片描述
memoryRate2.sh

#!/bin/bash


totalMemory=$( head -9 /proc/meminfo | awk 'NR==1{print $2}')
usedMemory=$( head -9 /proc/meminfo | awk 'NR==9{print $2}')
freeMemory=$( head -9 /proc/meminfo | awk 'NR==2{print $2}')
cachedMemory=$( head -9 /proc/meminfo | awk 'NR==4{buffers=$2}NR==5{print buffers+$2}')


# echo $totalMemory;
# echo $usedMemory;
# echo $freeMemory;
# echo $cachedMemory;

echo -e "usedMemoryRate: $(($usedMemory * 100 / $totalMemory)) %"
echo -e "cachedMemoryRate: $(($cachedMemory * 100 / $totalMemory)) %"
echo -e "freeMemoryRate: $(($freeMemory * 100 / $totalMemory)) %"

请添加图片描述