Leitura de memória do sistema legível por humanos da CLI?

12

No OS X, recebo uma boa leitura de memória do sistema legível por humanos :

printf -v system_memory \
          "$(system_profiler SPHardwareDataType \
             | awk -F ': ' '/^ +Memory: /{print $2}')"
echo "$system_memory"

exibe o amistoso:

4 GB

Embora isso no Linux esteja correto:

lshw -class memory

gera:

size: 4096MiB

Eu preciso analisá-lo dolorosamente e tentar transformá-lo em uma string tão legal quanto a acima.

Estou usando o comando errado?

    
por Robottinosino 29.03.2013 / 21:50

3 respostas

26

Se isso é tudo que você precisa, use apenas free :

$ free -h | gawk  '/Mem:/{print $2}'
7.8G

free retorna informações de memória, a opção -h informa para imprimir em formato legível.

    
por 29.03.2013 / 22:10
3

No Linux,

read x memtotal x < /proc/meminfo

Armazenaria o valor total de mems em $memory no número de kiB. Essa é a quantidade de memória disponível para o Linux, o mesmo relatado por free .

Se você deseja a RAM instalada, pode fazer coisas como:

awk '{s+=$0};END{print s}' /sys/bus/mc*/devices/dimm*/size

Para obter o tamanho em MiBs. Ou

awk '{s+=$0};END{printf "%.2gG\n", s/1024}' /sys/bus/mc*/devices/dimm*/size

Se você quiser o tamanho em GiB.

    
por 29.03.2013 / 23:18
0

A maneira mais simples é usar o comando free

free -gh
    
por 14.03.2017 / 10:56