diff options
Diffstat (limited to 'flakes/private/monitoring/plugins/check_mem.sh')
-rwxr-xr-x | flakes/private/monitoring/plugins/check_mem.sh | 31 |
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 | |||
3 | if [ "$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 | ||
23 | else # 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 | ||
31 | fi | ||