Получить информацию об использование памяти Linux в Bash скрипте

Иногда возникает задача получить информацию о доступном объеме оперативной памяти, занятой памяти или процент используемой памяти, как в целях мониторинга так и для работы некоторых скриптов.

Получить информацию об использование памяти Linux в Bash скрипте

Информацию об используемой памяти возможно получить с использованием утилиты free, которая выводит информацию об:

  • Текущем объеме оперативной памяти
  • Объема занятой оперативной памяти
  • Объем свободной оперативной памяти
  • Объем разделяемой памяти
  • Объем дискового буфера (кеша)
  • Объем доступной оперативной памяти

free -m | awk 'NR==2{printf "%s\n", $3 }'

По умолчанию информация об использованию оперативной памяти отображается в байтах, для получения информации в мегабайтах, необходимо использовать ключ -m.

Получить общий объем оперативной памяти Linux

Для получения общего объема оперативной памяти, необходимо из вывода утилиты free извлечь второй значение.

free -m | awk 'NR==2{printf "%s\n", $2 }'

free -m | awk 'NR==2{printf "%s\n", $2 }'

Получить объем использованной оперативной памяти Linux

Аналогично с предыдущем пунктом, для получения информации об используемой памяти извлекаем третье значение.

free -m | awk 'NR==2{printf "%s\n", $3 }'

free -m | awk 'NR==2{printf "%s\n", $3 }'

Так же можно объединить оба вывода, для более понятного представления

free -m | awk 'NR==2{printf "%s/%s\n", $3, $2 }'

free -m | awk 'NR==2{printf "%s/%s\n", $3, $2 }'

Получить процент занятой оперативной памяти Linux

Для получение информации о занятой оперативной памяти в процентах, так же необходимо получить оба значения, но и дополнительно сделать простое математическое преобразование.

free -m | awk 'NR==2{printf "%s\n", $3*100/$2 }'

free -m | awk 'NR==2{printf "%s\n", $3*100/$2 }'

Добавить комментарий