bash - 如何在 bash 脚本中以 gb 为单位获取 ram 大小?
问题描述
我需要获取当前机器的内存大小和当前机器的已用内存,以 gb 为单位。我该怎么做呢?我可以以 kB 为单位获取 ram 大小,但如何以 gb 为单位?
RAM = $(grep MemTotal /proc/meminfo)
我需要一个带有总内存的变量和一个带有已用内存的变量。我很抱歉这个问题,但我现在正在编辑一个 bash 脚本,这是我生命中的第一次 ^^ 感谢您的所有帮助!;)
解决方案
假设您想要 Gibibytes(也就是说,使用 1024 字节的 Kb,1024 Kb 的 Mb 等),您可以自己计算,但您必须过滤掉原始数字:
RAM_KB=$(grep MemTotal /proc/meminfo | awk '{print $2}')
RAM_MB=$(expr $RAM_KB / 1024)
RAM_GB=$(expr $RAM_MB / 1024)
您可以对已用内存执行基本相同的操作。或者,许多系统都free
安装了为您执行此数学运算的实用程序:
free -g
将在 GiB 中提供答案:
$ free -g
total used free shared buff/cache available
Mem: 24 0 23 0 1 23
Swap: 7 0 7
您可以使用 grep 和 awk 从那里提取所需的值:
TOTAL_MEM=$(free -g | grep Mem: | awk '{print $2}')
MEM_USED=$(free -g | grep Mem: | awk '{print $3}')
推荐阅读
- javascript - 一次只显示一个答案
- python - 编辑 zip 文件(在内存中)
- python - 使用 Python ElementTree 从 XML 中提取值
- c# - 无法以编程方式单独选中 CheckedListBox 中的复选框
- c# - Microsoft.AspNetCore.Mvc 不呈现@scripts 部分
- spring-mvc - 解析模板 [registration] 时出错,模板可能不存在或可能无法被任何已配置的模板解析器访问
- c++ - 编译时可以平方而不溢出的最大值是多少(整数类型)?
- javascript - 使用咖啡脚本自动更新值
- deployment - 无法从 Digital Ocean Droplet 访问已部署的应用程序
- ios - 将类型扩展为具有相同关联类型的多个值