# Command line example # warn = percentage before warning # crit = percentage before critical # awk -f check_mem -v warn=80 -v crit=90 /proc/meminfo # awk -f /usr/lib/nagios/plugins/check_mem -v warn=$ARG1$ -v crit=$ARG2$ /proc/meminfo BEGIN { if ( warn > crit || warn > 100 || warn <= 0 ) { print "UNKNOWN - not a valid warning value 0.0 <= warn < crit < 100.0"; _assert_exit = 3 } if ( crit > 100 || crit <= 0 ) { print "UNKNOWN - not a valid critical value 0.0 <= crit < 100.0"; _assert_exit = 3 } if ( _assert_exit ) { exit _assert_exit }; } /^(MemFree:|Buffers:|Cached:)/ { diff+=$2 }; /^MemTotal:/ { total = $2 }; END { if ( _assert_exit ) { exit _assert_exit }; used=total-diff; perc=(used/total)*100; status=sprintf("%2.2f%% - %dMB / %dMB", perc, used/1024, total/1024); if ( perc < warn ) { print "OK:",status; exit 0; } else { if ( perc < crit ) { print "WARNING:",status,"threshold:",warn"%"; exit 1; } else { print "CRITICAL:",status,"threshold:",crit"%"; exit 2; } } }