16 lines
750 B
Bash
Executable File
16 lines
750 B
Bash
Executable File
#!/bin/sh
|
|
# RAM: процент занятого + строка занято/всего. Linux + mac.
|
|
# Контракт мониторов: 1-я строка — процент, дальше — key=value.
|
|
# ponytail: used = сумма RSS процессов (без кэшей ОС) — на mac «доступно» дёшево не получить;
|
|
# если нужен точный linux used — /proc/meminfo MemAvailable.
|
|
case "$(uname)" in
|
|
Darwin) total_kb=$(( $(sysctl -n hw.memsize) / 1024 )) ;;
|
|
*) total_kb=$(awk '/MemTotal/ {print $2}' /proc/meminfo) ;;
|
|
esac
|
|
ps -A -o rss=,%mem= | awk -v t="$total_kb" '
|
|
{rss+=$1; mem+=$2}
|
|
END {
|
|
printf "%d\n", mem
|
|
printf "занято=%.1f / %.1f ГБ\n", rss/1048576, t/1048576
|
|
}'
|