1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- #!/usr/bin/env bash
- # Copyright (C) 2014 Julien Bonjean <julien@bonjean.info>
- # This program is free software: you can redistribute it and/or modify
- # it under the terms of the GNU General Public License as published by
- # the Free Software Foundation, either version 3 of the License, or
- # (at your option) any later version.
- # This program is distributed in the hope that it will be useful,
- # but WITHOUT ANY WARRANTY; without even the implied warranty of
- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- # GNU General Public License for more details.
- # You should have received a copy of the GNU General Public License
- # along with this program. If not, see <http://www.gnu.org/licenses/>.
- TYPE="${BLOCK_INSTANCE:-mem}"
- awk -v type=$TYPE '
- /^MemTotal:/ {
- mem_total=$2
- }
- /^MemFree:/ {
- mem_free=$2
- }
- /^Buffers:/ {
- mem_free+=$2
- }
- /^Cached:/ {
- mem_free+=$2
- }
- /^SwapTotal:/ {
- swap_total=$2
- }
- /^SwapFree:/ {
- swap_free=$2
- }
- END {
- if (type == "swap") {
- free=swap_free/1024/1024
- used=(swap_total-swap_free)/1024/1024
- total=swap_total/1024/1024
- } else {
- free=mem_free/1024/1024
- used=(mem_total-mem_free)/1024/1024
- total=mem_total/1024/1024
- }
- pct=0
- if (total > 0) {
- pct=(used/total)*100
- }
- # full text
- printf("%.1fG/%.1fG (%.f%%)\n", total, used, pct)
- # printf("%.1fG/%.1fG (%.f%%)\n", used, total, pct)
- # short text
- printf("%.f%%\n", pct)
- # color
- if (pct > 90) {
- print("#FF0000")
- } else if (pct > 80) {
- print("#FFAE00")
- } else if (pct > 70) {
- print("#FFF600")
- }
- }
- ' /proc/meminfo
|