aboutsummaryrefslogtreecommitdiff
path: root/flakes/private/monitoring/plugins/check_mem.sh
diff options
context:
space:
mode:
Diffstat (limited to 'flakes/private/monitoring/plugins/check_mem.sh')
-rwxr-xr-xflakes/private/monitoring/plugins/check_mem.sh31
1 files changed, 31 insertions, 0 deletions
diff --git a/flakes/private/monitoring/plugins/check_mem.sh b/flakes/private/monitoring/plugins/check_mem.sh
new file mode 100755
index 0000000..3a29040
--- /dev/null
+++ b/flakes/private/monitoring/plugins/check_mem.sh
@@ -0,0 +1,31 @@
1#!/usr/bin/env bash
2
3if [ "$1" = "-w" ] && [ "$2" -gt "0" ] && [ "$3" = "-c" ] && [ "$4" -gt "0" ]; then
4 FreeM=`free -m -w`
5 memTotal_m=`echo "$FreeM" |grep Mem |awk '{print $2}'`
6 memUsed_m=`echo "$FreeM" |grep Mem |awk '{print $3}'`
7 memFree_m=`echo "$FreeM" |grep Mem |awk '{print $4}'`
8 memShared_m=`echo "$FreeM" |grep Mem |awk '{print $5}'`
9 memBuffer_m=`echo "$FreeM" |grep Mem |awk '{print $6}'`
10 memCache_m=`echo "$FreeM" |grep Mem |awk '{print $7}'`
11 memAvailable_m=`echo "$FreeM" |grep Mem |awk '{print $8}'`
12 memUsedPrc=`echo $((($memUsed_m-$memBuffer_m-$memCache_m)*100/$memTotal_m))||cut -d. -f1`
13 if [ "$memUsedPrc" -ge "$4" ]; then
14 echo "Memory: CRITICAL Total: $memTotal_m MB - Used/Buffer/Cache: $memUsed_m MB - $memUsedPrc% used!|TOTAL=$memTotal_m;;;; USED=$memUsed_m;;;; SHARED=$memShared_m;;;; CACHE=$memCache_m;;;; AVAILABLE=$memAvailable_m;;;; BUFFER=$memBuffer_m;;;;"
15 exit 2
16 elif [ "$memUsedPrc" -ge "$2" ]; then
17 echo "Memory: WARNING Total: $memTotal_m MB - Used/Buffer/Cache: $memUsed_m MB - $memUsedPrc% used!|TOTAL=$memTotal_m;;;; USED=$memUsed_m;;;; SHARED=$memShared_m;;;; CACHE=$memCache_m;;;; AVAILABLE=$memAvailable_m;;;; BUFFER=$memBuffer_m;;;;"
18 exit 1
19 else
20 echo "Memory: OK Total: $memTotal_m MB - Used/Buffer/Cache: $memUsed_m MB - $memUsedPrc% used|TOTAL=$memTotal_m;;;; USED=$memUsed_m;;;; SHARED=$memShared_m;;;; CACHE=$memCache_m;;;; AVAILABLE=$memAvailable_m;;;; BUFFER=$memBuffer_m;;;;"
21 exit 0
22 fi
23else # If inputs are not as expected, print help.
24 sName="`echo $0|awk -F '/' '{print $NF}'`"
25 echo -e "\n\n\t\t### $sName Version 2.0###\n"
26 echo -e "# Usage:\t$sName -w <warnlevel> -c <critlevel>"
27 echo -e "\t\t= warnlevel and critlevel is percentage value without %\n"
28 echo "# EXAMPLE:\t/usr/lib64/nagios/plugins/$sName -w 80 -c 90"
29 echo -e "\nCopyright (C) 2012 Lukasz Gogolin (lukasz.gogolin@gmail.com), improved by Nestor 2015\n\n"
30 exit
31fi