Я набираю скрипт оболонки, щоб дізнатися загальну фізичну пам’ять у деяких полях Linux RHEL.
Перш за все, хочу наголосити, що мене цікавить загальна фізична пам'ять, розпізнавана ядром, а не лише наявна пам'ять . Тому, будь ласка, остерігайтеся відповіді передбачають читати / Proc / MemInfo або використовувати вільні , зверху або Sar команди - У всіх цих випадках, їх « спільна пам'ять значення» означають « доступна пам'ять » з них.
Перша думка полягала в тому, щоб прочитати повідомлення ядра завантажувача:
Memory: 61861540k/63438844k available (2577k kernel code, 1042516k reserved, 1305k data, 212k init)
Але в деяких Лінукс коробки, з - за використання PowerPath програмного забезпечення EMC2 і його затоплення завантаження повідомлень в запуску ядра, що корисно повідомлення завантаження ядра не доступна, навіть не в / / журнал / dmesg вар файл.
Другим варіантом була команда dmidecode (я попереджаю про можливу невідповідність ядра, що розпізнається ядром, і реальної оперативної пам’яті через обмеження деяких старих ядер та архітектур). Опція --ememory спрощує сценарій, але я зрозумів, що в старих випусках цієї команди немає - можливості пам'яті .
Мій останній шанс - команда getconf . Він повідомляє про розмір сторінки пам'яті, але не про загальну кількість фізичних сторінок - системна змінна _PHYS_PAGES видається доступною фізичною сторінкою, а не загальною фізичною сторінкою.
# getconf -a | grep PAGES СТОРІНКА 4096 _AVPHYS_PAGES 1049978 _PHYS_PAGES 15466409
Моє запитання: Чи є інший спосіб отримати загальний обсяг фізичної пам'яті, підходящий для розбору сценарію оболонки?