14 lines
497 B
Bash
Executable File
14 lines
497 B
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
total="$(free --si | rg Mem | awk '{print $2}')"
|
|
|
|
human() {
|
|
awk -v mem="$1" 'BEGIN{print sprintf("%.1f%s", mem/1000/(mem > 1000000 ? 1000 : 1), mem > 1000000 ? "G" : "M")}'
|
|
}
|
|
|
|
free --si -s 3 | rg --line-buffered Mem | while read -r line; do
|
|
used=$(echo "$line" | awk '{print $3}')
|
|
perc=$(awk -v used="$used" -v total="$total" 'BEGIN{print sprintf("%.f", used/total*100)}')
|
|
|
|
echo '{"total": "'$(human "$total")'", "used": "'$(human "$used")'", "percent": '$perc'}'
|
|
done |