#!/bin/bash -x # memory check monitor. if mem is less than set lev, logs # a notice PRT_MEM=`/opt/RMCmem/bin/5.9/sparcv9/prtmem 2>&1` if [ $? -eq 0 ]; then PRT_MEM_DVR=`echo $PRT_MEM | grep 'The MemTool device driver is not loaded' | wc -l` if [ $PRT_MEM_DRV -lt 1 ]; then logger "NOTICE: Cannot check free memory because prtmem call failed." exit -1 fi /opt/RMCmem/drv/bunyipload # try to load the driver PRT_MEM=`/opt/RMCmem/bin/5.9/sparcv9/prtmem 2>&1` if [ $? -ne 0 ]; then logger "NOTICE: Cannot check free memory because prtmem call failed." exit -1 fi fi MEM_WARN_LEV=200 FC_KERNEL=`echo $PRT_MEM | grep 'File Cache' | awk '{print $19;}'` FC_FREELIST=`echo $PRT_MEM | grep 'Free, file cache' | awk '{print $24;}'` FR_ZERO=`echo $PRT_MEM | grep 'Free, free' | awk '{print $28;}'` FC=$(( $FC_KERNEL + $FC_FREELIST + $FR_ZERO )) echo $(( $FC_KERNEL + $FC_FREELIST + $FR_ZERO )) if [ "$FC" -lt "$MEM_WARN_LEV" ]; then logger "NOTICE: Low free memory detected ($FCM)" fi