Como posso descobrir a memória física total (RAM) da minha caixa de Linux adequada para ser analisada por um script de shell?

Estou digitando um script de shell para descobrir a memória física total em algumas caixas de linux do RHEL.

Primeiro de tudo, quero enfatizar que estou interessado nomemória física total reconhecido pelo kernel, não apenasmemoria disponivel. Portanto, por favor, evite respostas sugerindo ler/ proc / meminfo ou usar olivre, topo ousar comandos - Em todos estes casos, o seu "memória total"valores significam"memoria disponivel" uns.

O primeiro pensamento foi ler as mensagens do kernel de inicialização:

Memory: 61861540k/63438844k available (2577k kernel code, 1042516k reserved, 1305k data, 212k init)

Mas em algumas caixas de linux, devido ao uso do software PowerPath da EMC2 einundação mensagens de inicialização na inicialização do kernel, essa mensagem útil do kernel de inicialização não está disponível, nem mesmo no/ var / log / dmesg Arquivo.

A segunda opção foi admidecode comando (Eu estou avisado contra a possível incompatibilidade de kernel RAM e memória RAM, devido às limitações de alguns kernels e arquiteturas mais antigos). A opção--memória simplifica o script, mas percebi que as versões mais antigas desse comando não tem--memória opção.

Minha última chance foi agetconf comando. Ele informa o tamanho da página da memória, mas não o número total de páginas físicas_PHYS_PAGES variável de sistema parece ser as páginas físicas disponíveis, não o total de páginas físicas.

# getconf -a | grep PAGES
PAGESIZE                           4096
_AVPHYS_PAGES                      1049978
_PHYS_PAGES                        15466409

Minha pergunta: Existe outra maneira de obter a quantidade total de memória física, adequada para ser analisada por um script de shell?

questionAnswers(11)

yourAnswerToTheQuestion