]>
Commit | Line | Data |
---|---|---|
1a64deeb | 1 | #!/usr/bin/env bash |
3bc32d9e IB |
2 | |
3 | if [ "$1" = "-w" ] && [ "$2" -gt "0" ] && [ "$3" = "-c" ] && [ "$4" -gt "0" ]; then | |
1a64deeb | 4 | FreeM=`free -m -w` |
3bc32d9e IB |
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}'` | |
1a64deeb | 8 | memShared_m=`echo "$FreeM" |grep Mem |awk '{print $5}'` |
3bc32d9e IB |
9 | memBuffer_m=`echo "$FreeM" |grep Mem |awk '{print $6}'` |
10 | memCache_m=`echo "$FreeM" |grep Mem |awk '{print $7}'` | |
1a64deeb IB |
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` | |
3bc32d9e | 13 | if [ "$memUsedPrc" -ge "$4" ]; then |
1a64deeb | 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;;;;" |
3bc32d9e IB |
15 | exit 2 |
16 | elif [ "$memUsedPrc" -ge "$2" ]; then | |
1a64deeb | 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;;;;" |
3bc32d9e IB |
18 | exit 1 |
19 | else | |
1a64deeb | 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;;;;" |
3bc32d9e IB |
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 |