#!/bin/sh # Copyright (C) 2014 Julien Bonjean # 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 . TYPE="${BLOCK_INSTANCE:-mem}" echo -n "${TYPE} " | sed 's/mem/mev/g;s/swap/éch/g' 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 { # TODO: color (if less than X%) if (type == "swap") if ((swap_total-swap_free)*100/swap_total > 90) printf("") else if ((swap_total-swap_free)*100/swap_total > 70) printf("") else if ((swap_total-swap_free)*100/swap_total > 40) printf("") else if ((swap_total-swap_free)*100/swap_total > 10) printf("") else printf("") else if ((mem_total-mem_free)*100/mem_total > 90) printf("") else if ((mem_total-mem_free)*100/mem_total > 70) printf("") else if ((mem_total-mem_free)*100/mem_total > 40) printf("") else if ((mem_total-mem_free)*100/mem_total > 10) printf("") else printf("") # full text if (type == "swap") #printf("%.1fG\n", swap_free/1024/1024) printf("%2d%\n", (swap_total-swap_free)*100/swap_total) else #printf("%.1f%\n", mem_free/1024/1024) printf("%2d%\n", (mem_total-mem_free)*100/mem_total) # # TODO: short text # if (type == "swap") # #printf("%.1fG\n", swap_free/1024/1024) # printf("%2.0f%\n", (swap_total-swap_free)*100/swap_total) # else # #printf("%.1f%\n", mem_free/1024/1024) # printf("%2.0f%\n", (mem_total-mem_free)*100/mem_total) # } ' /proc/meminfo