From cf8a423107a502c4e90dc776f56121a44edf1afe Mon Sep 17 00:00:00 2001 From: =?utf8?q?Isma=C3=ABl=20Bouya?= Date: Sun, 9 Apr 2023 11:52:49 +0200 Subject: [PATCH] Fix memory plugin for monitoring --- modules/private/monitoring/plugins/check_mem.sh | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/modules/private/monitoring/plugins/check_mem.sh b/modules/private/monitoring/plugins/check_mem.sh index cc97ae2..3a29040 100755 --- a/modules/private/monitoring/plugins/check_mem.sh +++ b/modules/private/monitoring/plugins/check_mem.sh @@ -1,21 +1,23 @@ -#!/bin/bash +#!/usr/bin/env bash if [ "$1" = "-w" ] && [ "$2" -gt "0" ] && [ "$3" = "-c" ] && [ "$4" -gt "0" ]; then - FreeM=`free -m` + FreeM=`free -m -w` memTotal_m=`echo "$FreeM" |grep Mem |awk '{print $2}'` memUsed_m=`echo "$FreeM" |grep Mem |awk '{print $3}'` memFree_m=`echo "$FreeM" |grep Mem |awk '{print $4}'` + memShared_m=`echo "$FreeM" |grep Mem |awk '{print $5}'` memBuffer_m=`echo "$FreeM" |grep Mem |awk '{print $6}'` memCache_m=`echo "$FreeM" |grep Mem |awk '{print $7}'` - memUsedPrc=`echo $((($memUsed_m*100)/$memTotal_m))||cut -d. -f1` + memAvailable_m=`echo "$FreeM" |grep Mem |awk '{print $8}'` + memUsedPrc=`echo $((($memUsed_m-$memBuffer_m-$memCache_m)*100/$memTotal_m))||cut -d. -f1` if [ "$memUsedPrc" -ge "$4" ]; then - echo "Memory: CRITICAL Total: $memTotal_m MB - Used: $memUsed_m MB - $memUsedPrc% used!|TOTAL=$memTotal_m;;;; USED=$memUsed_m;;;; CACHE=$memCache_m;;;; BUFFER=$memBuffer_m;;;;" + 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;;;;" exit 2 elif [ "$memUsedPrc" -ge "$2" ]; then - echo "Memory: WARNING Total: $memTotal_m MB - Used: $memUsed_m MB - $memUsedPrc% used!|TOTAL=$memTotal_m;;;; USED=$memUsed_m;;;; CACHE=$memCache_m;;;; BUFFER=$memBuffer_m;;;;" + 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;;;;" exit 1 else - echo "Memory: OK Total: $memTotal_m MB - Used: $memUsed_m MB - $memUsedPrc% used|TOTAL=$memTotal_m;;;; USED=$memUsed_m;;;; CACHE=$memCache_m;;;; BUFFER=$memBuffer_m;;;;" + 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;;;;" exit 0 fi else # If inputs are not as expected, print help. -- 2.41.0