Bash脚本如何使用awk获取内存信息

在Linux上,我们可以通过文件“/proc/meminfo”来显示内存相关信息:

$cat /proc/memoinfo
MemTotal:       32939372 kB
MemFree:        31155452 kB
MemAvailable:   31269760 kB
Buffers:          242964 kB
Cached:           200756 kB
SwapCached:        10472 kB
Active:           853936 kB
Inactive:         630008 kB
Active(anon):     569276 kB
Inactive(anon):   467960 kB
Active(file):     284660 kB
Inactive(file):   162048 kB
Unevictable:           0 kB
Mlocked:               0 kB
SwapTotal:       1048572 kB
SwapFree:         829436 kB
Dirty:                24 kB
Writeback:             0 kB
AnonPages:       1037860 kB
Mapped:            91908 kB
Shmem:               376 kB
Slab:             176904 kB
SReclaimable:      75392 kB
SUnreclaim:       101512 kB
KernelStack:        7360 kB
PageTables:        20676 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:    17518256 kB
Committed_AS:    3736228 kB
VmallocTotal:   34359738367 kB
VmallocUsed:           0 kB
VmallocChunk:          0 kB
HardwareCorrupted:     0 kB
AnonHugePages:         0 kB
ShmemHugePages:        0 kB
ShmemPmdMapped:        0 kB
CmaTotal:              0 kB
CmaFree:               0 kB
HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB
DirectMap4k:      812896 kB
DirectMap2M:    32741376 kB
DirectMap1G:     2097152 kB

如果我们只想获取内存总大小,可以使用awk提取内存信息:

#!/bin/bash
function get_mem_info () {
    local key=""
    local val=$(cat /proc/meminfo | grep "$key" | awk -F ' ' '{ print ; }')
    echo $val
}
get_mem_info 

例如:

$./get_mem_info MemTotal
32939372
日期:2020-07-07 20:54:35 来源:oir作者:oir