107 lines
2.9 KiB
Bash
107 lines
2.9 KiB
Bash
#!/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`
|
|
|
|
# change unit into 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
|