linux - Bash + 如果阈值低于最小值则计算警报

标签 linux bash perl shell awk

我创建了以下命令以获取总内存和已用内存

      top -n1 | grep Mem | awk '{print "TOTAL="$3" USED="$7}'

我需要打印“内存低于 20%”

 echo "memory is under 20%"

如果已用内存小于或等于 20%

请指教如何用 bash 计算这个?还是 awk?还是 perl 一个类轮?

最佳答案

top -n1 | grep Mem | awk '{print "TOTAL="$3" USED="$7; per=$7/$3*100; if(per<=20) print "memory is under 20%" }'

将产生输出

TOTAL=1944532k USED=176456k
memory is under 20%

是做什么的?

per=$7/$3*100 计算百分比

if(per<=20) print "memory is under 20%" 检查 per 百分比是否小于 20%,如果是则打印消息。

top -n1 | grep Mem | awk '{print "TOTAL="$3" USED="$7; per=int($7)/int($3)*100; if(per<=20) print "memory is under 20%" }'

将产生输出

TOTAL=1944532 USED=176456
memory is under 20%

字符串值被截断为 int。从输出中删除 k 查看与早期输出的区别

关于linux - Bash + 如果阈值低于最小值则计算警报,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26115554/

相关文章:

linux - 如果 column1 中的值重复,则 awk 脚本对多列求和

bash - 如何确定 openssl.cnf 的默认位置?

arrays - 将2个数组放入perl中的散列中

perl - 在perl中获取数组中数组的大小

linux - 根据输入文件从 csv 中删除行

linux - 无法 ping 通在 Qemu 上运行的 Linux 镜像

linux - 使用 ssh 和 scp 时组合多个命令

php - 如何编译支持 sqlite3 的 php

bash - 修改Xcode的project.pbxproj中的PRODUCT_BUNDLE_IDENTIFIER

perl - 使 perl 命令超时