#!/bin/sh
os=`uname`
mem=0
if [ "$os" = "linux" ] || [ "$os" = "Linux" ]
then
which sar > /dev/null 2>&1
if [ $? -ne 0 ]
then
which free > /dev/null 2>&1
if [ $? -ne 0 ]
then
echo "error_text='sar'and 'free' commands not found!"
exit
else
total=`free | grep Mem: | awk '{ print $2 }'`
used=`free | grep Mem: | awk '{ print $3 }'`
mem=`echo|awk '{print ((c1*100)/c2) }' c1=$used c2=$total`
fi
else
sar -r 1 3 > sar_memory_out 2>&1
cat sar_memory_out | grep Average > memory_temp
used=`sed -n 1p memory_temp | awk '{ print $3 }'`
free=`sed -n 1p memory_temp | awk '{ print $2 }'`
mem=`sed -n 1p memory_temp |awk '{ print $4 }'`
total=`echo|awk '{print (c1+c2)}' c1=$used c2=$free`
fi
elif [ "$os" = "SunOS" ]
then
vmexec=`which vmstat | awk '{print $1}'`
if [ "$vmexec" = "no" ]
then
echo "error_text=vmstat command not found!"
exit 0
fi
total=`prtconf | grep "Mem" | awk '{print $3}'`
t=`echo $total | awk '{print $1}'`
total_kb=`echo|awk '{print (c1*1024) }' c1=$t`
vmstat_output=`/bin/vmstat 1 2 | tail -1`
free=`echo $vmstat_output | awk '{print $5;}'`
used_kb=`echo|awk '{print (c1-c2) }' c1=$total_kb c2=$free`
used_pg=`echo|awk '{print (c1-c2*4) }' c1=$total_kb c2=$free`
if [ $used_kb -gt $t ] && [ $used_pg -gt 0 ]
then
used=$used_pg
else
used=$used_kb
fi
mem=`echo|awk '{print ((c1*100)/c2) }' c1=$used c2=$total_kb`
total=$total_kb
elif [ "$os" = "AIX" ]
then
svmon_out=`svmon -G | grep -i memory`
total=`echo $svmon_out | awk '{ print ($2 * 4)}'`
used=`echo $svmon_out | awk '{ print ($3 * 4)}'`
mem=`echo|awk '{printf("%0.2f",((c1*100)/c2)) }' c1=$used c2=$total`
elif [ "$os" = "HP-UX" ]
then
vmexec=`which vmstat | awk '{print $1}'`
if [ "$vmexec" = "no" ]
then
echo "error_text=vmstat command not found!"
exit 0
fi
DMESG=`/sbin/dmesg | /usr/bin/grep 'Physical.*lockable.*available'`
total=`echo ${DMESG} | /usr/bin/awk '{print $2}'`
VMSTAT=`$vmexec 1 2 | /usr/bin/tail -1`
free=`echo $VMSTAT | /usr/bin/awk '{print $5;}'`
free=`/usr/bin/expr $free \* 4`
used=`expr $total \- $free`
mem=`expr $used \* 100 / $total`
else
vmexec=`which vmstat | awk '{print $1}'`
if [ "$vmexec" = "no" ]
then
echo "error_text=vmstat command not found!"
exit 0
fi
total=`prtconf | grep "Mem" | awk '{print $3}'`
vmstat_output=`/bin/vmstat 1 2 | tail -1`
free=`echo $vmstat_output | awk '{print $5;}'`
total=`echo|awk '{print (c1*1024) }' c1=$total`
used=`echo|awk '{print (c1-c2) }' c1=$total c2=$free`
mem=`echo|awk '{print ((c1*100)/c2) }' c1=$used c2=$total`
fi
total=`echo | awk '{printf ("%.0f", c1/1024) }' c1=$total `
used=`echo | awk '{printf ("%.0f", c1/1024) }' c1=$used`
mem=`echo | awk '{printf ("%.0f", c1) }' c1=$mem`
echo "Used Memory=${used}"
echo "Free Memory=${free}"
echo "Total Memory=${total}"
echo "Memory Utilization=$mem"
exit 0