#!/bin/bash -e export PLUGIN_ARGS="$@" gawk ' BEGIN { kb = 1024 ret = 0 } function show(name, val) { gsub(":", "", name) reply = reply sprintf(" %s=%dB;%d;%d;0;%d", name, val*kb, total*0.97, total*0.999, total) } function show_counter(name, val) { gsub(":", "", name) reply = reply sprintf(" %s=%dc", name, val*kb) } /^MemTotal:/ { total = $2 total_stat = sprintf("%1.1f GB mem total", $2/kb/kb) reply = sprintf("Total=%dB", total*kb) } /^MemFree:/ { show("Used", total-$2) } /^(Buffers|Cached|Shmem):/ { show($1, $2) } /^SwapTotal:/ { swap = $2 } /^SwapFree:/ { show("Swap", swap-$2) if (swap==0) { swap_stat = "NO SWAP!" } else { swap_stat = sprintf("%d%% swap in use", 100-$2/swap*100) } split(ENVIRON["PLUGIN_ARGS"], arg, " ?-") for(i in arg) { if (arg[i]) { split(arg[i], kv, " ") key = kv[1] value = kv[2] last = substr(value, length(value)) if (last=="%") { free = $2 req = swap*substr(value, 1, length(value)-1)/100 } else { free = $2*1024 req = value } if (free