113 lines
3.1 KiB
Bash
113 lines
3.1 KiB
Bash
#!/bin/sh
|
|
os=`uname`
|
|
total=0
|
|
idle=0
|
|
system=0
|
|
user=0
|
|
nice=0
|
|
mem=0
|
|
vmexec=`which vmstat | awk '{print $1}'`
|
|
if [ "$vmexec" = "no" ]
|
|
then
|
|
echo "error_text=Please check vmstat execute path"
|
|
exit
|
|
else
|
|
if [ "$os" = "linux" ] || [ "$os" = "Linux" ]
|
|
then
|
|
which sar > /dev/null 2>&1
|
|
if [ $? -ne 0 ]
|
|
then
|
|
ver=`vmstat -V | awk '{printf $3}'`
|
|
if [ "$ver" = "2.0.11" ] || [ "$ver" = "2.0.7" ] || [ "$ver" = "2.0.6" ]
|
|
then
|
|
nice=0
|
|
temp=`vmstat 1 3 |tail -1`
|
|
user=`echo $temp |awk '{printf("%s\n",$14)}'`
|
|
system=`echo $temp |awk '{printf("%s\n",$15)}'`
|
|
idle=`echo $temp |awk '{printf("%s\n",$16)}'`
|
|
total=`echo|awk '{print (c1+c2)}' c1=$system c2=$user`
|
|
|
|
elif [ "$ver" = "2.0.13" ]
|
|
then
|
|
nice=0
|
|
temp=`vmstat 1 3 |tail -1`
|
|
user=`echo $temp |awk '{printf("%s\n",$13)}'`
|
|
system=`echo $temp |awk '{printf("%s\n",$14)}'`
|
|
idle=`echo $temp |awk '{printf("%s\n",$15)}'`
|
|
total=`echo|awk '{print (c1+c2)}' c1=$system c2=$user`
|
|
else
|
|
nice=0
|
|
temp=`vmstat 1 3 |tail -1`
|
|
user=`echo $temp |awk '{printf("%s\n",$13)}'`
|
|
system=`echo $temp |awk '{printf("%s\n",$14)}'`
|
|
idle=`echo $temp |awk '{printf("%s\n",$15)}'`
|
|
total=`echo|awk '{print (c1+c2)}' c1=$system c2=$user`
|
|
|
|
|
|
fi
|
|
else
|
|
#save load data to temporary file
|
|
sar -u 1 3 > sar_cpu_output 2>&1
|
|
grep -i "Usage" sar_cpu_output > /dev/null
|
|
if [ $? -eq 0 ]
|
|
then
|
|
sar -U 1 3 > sar_cpu_output 2>&1
|
|
fi
|
|
cat sar_cpu_output | grep Average > cputemp
|
|
|
|
#calculate the load data
|
|
user=`sed -n 1p cputemp|awk '{ print $3 }'`
|
|
nice=`sed -n 1p cputemp|awk '{ print $4 }'`
|
|
system=`sed -n 1p cputemp|awk '{ print $5 }'`
|
|
idle=`sed -n 1p cputemp|awk '{ print $6 }'`
|
|
total=`echo|awk '{print (c1+c2)}' c1=$system c2=$user`
|
|
fi
|
|
|
|
elif [ "$os" = "SunOS" ]
|
|
then
|
|
nice=0
|
|
temp=`vmstat 1 3 |tail -1`
|
|
user=`echo $temp |awk '{printf("%s\n",$20)}'`
|
|
system=`echo $temp |awk '{printf("%s\n",$21)}'`
|
|
idle=`echo $temp |awk '{printf("%s\n",$22)}'`
|
|
total=`echo|awk '{print (c1+c2)}' c1=$system c2=$user`
|
|
|
|
elif [ "$os" = "HP-UX" ]
|
|
then
|
|
nice=0
|
|
temp=`vmstat 1 3 |tail -1`
|
|
user=`echo $temp |awk '{printf("%s\n",$16)}'`
|
|
system=`echo $temp |awk '{printf("%s\n",$17)}'`
|
|
idle=`echo $temp |awk '{printf("%s\n",$18)}'`
|
|
total=`echo|awk '{print (c1+c2)}' c1=$system c2=$user`
|
|
|
|
elif [ "$os" = "SCO_SV" ] || [ "$os" = "UnixWare" ]
|
|
then
|
|
nice=0
|
|
temp=`vmstat 1 3 |tail -1`
|
|
user=`echo $temp |awk '{printf("%s\n",$18)}'`
|
|
system=`echo $temp |awk '{printf("%s\n",$19)}'`
|
|
idle=`echo $temp |awk '{printf("%s\n",$20)}'`
|
|
total=`echo|awk '{print (c1+c2)}' c1=$system c2=$user`
|
|
|
|
elif [ "$os" = "AIX" ] || [ "$os" = "aix" ]
|
|
then
|
|
temp=`vmstat 1 3 |tail -1`
|
|
user=`echo $temp |awk '{printf("%s\n",$14)}'`
|
|
system=`echo $temp |awk '{printf("%s\n",$15)}'`
|
|
idle=`echo $temp |awk '{printf("%s\n",$16)}'`
|
|
total=`echo|awk '{print (c1+c2)}' c1=$system c2=$user`
|
|
|
|
else
|
|
echo "error_text=Unsupported platform: $os"
|
|
exit
|
|
fi
|
|
|
|
echo "Total CPU Utilization=$total"
|
|
echo "CPU Utilization (user)=$user"
|
|
echo "CPU Utilization (system)=$system"
|
|
echo "CPU Utilization (nice)=$nice"
|
|
echo "CPU Utilization (idle)=$idle"
|
|
|
|
fi
|
|
exit 0 |