Nombre: checkMemory.sh
Autor: Cristian Hernandez
Descripcion: Monitorea el uso total de la memoria.
Leer más...
#!/bin/bash #=============================================================================== # Author: # Cristian Hernandez #=============================================================================== # # Description: # Monitor total memory usage. # # Parameters: # -w: Warning threshold (in percentiles) # -c: Critical threshold (in percentiles) # -h: Help message # #=============================================================================== # # FUNCTIONS: # #------------------------------------------------------------------------------- # Check CPU activity. Returns OK, WARNING or CRITICAL status based on command # line arguments function check_memory() { local warning=$1 local critical=$2 local results=($(free -m | awk 'BEGIN { total=0; rss=0 } { if ($1 == "Mem:") { total=$2; # Memory total vmz=$3; # Memory in use (VMZ) } if ($1 == "-/+") { rss=$3 # Memory in use (RSS) cache=vmz-$3; # Memory in cache } } END { # Return array of results: [percent_memory_used, memory_in_cache] print int(rss/total*100), cache }')) echo "Current:${results[0]} Threshold:[${warning}/${critical}]% Cache:${results[1]}MB" # Check status and exit accordingly [ "${results[0]}" -gt "$critical" ] && exit 2 [ "${results[0]}" -gt "$warning" ] && exit 1 exit 0 } #------------------------------------------------------------------------------- # Help message function usage() { echo "Usage: -w: Warning threshold (in percentiles, i.e. from 0 to 100) -c: Critical threshold (in percentiles, i.e. from 0 to 100) -h: This Help message Example: $0 -w 70 -c 90" } #------------------------------------------------------------------------------- # # MAIN: # #------------------------------------------------------------------------------- # Check command line options while getopts 'c:w:h' OPT do case $OPT in w) warning=${OPTARG} ;; c) critical=${OPTARG} ;; h) usage && exit 1 ;; esac done # Validate command line arguments if [ $# -eq 4 ]; then if [ "$critical" -gt "$warning" ]; then # Check memory usage and exit accordingly check_memory $warning $critical else echo "ERROR: critical threshold must be greater than warning threshold" usage exit 1 fi else echo "ERROR: Missing argument!" usage exit 1 fi