#!/bin/bash
# Usage: check_local_mem <warn-used-%> <crit-used-%>
WARN="${1:-85}"; CRIT="${2:-95}"
read TOT USED <<<$(free -b | awk '/^Mem:/ {print $2, $3}')
[ -z "$TOT" ] && { echo "UNKNOWN: cannot read /proc/meminfo via free"; exit 3; }
PCT=$(( USED * 100 / TOT ))
PERF="| used_pct=${PCT}%;${WARN};${CRIT};0;100 used_bytes=${USED}B;;;0;${TOT}"
if [ "$PCT" -ge "$CRIT" ]; then echo "CRITICAL: memory used ${PCT}% $PERF"; exit 2
elif [ "$PCT" -ge "$WARN" ]; then echo "WARNING: memory used ${PCT}% $PERF"; exit 1
else echo "OK: memory used ${PCT}% $PERF"; exit 0
fi
