用shell实现Informix的性能监控
用shell实现informix的性能监控,并以html格式输出,直观方便。 适合informix系统初建时监控系统性能。本例是按cron机制运行设计的,安排它在每天系统繁忙时进行监控,以便对系统的资源分配,参数设置进行分析和合理调整。
#!/bin/ksh
#ScriptName:getgloinfo
#定义环境变量
INFORMIXDIR=/usr/informix
INFORMIXSERVER=server0
ONCONFIG=onconfig.server0
PATH=$PATH:$INFORMIXDIR/bin
exportINFORMIXDIRINFORMIXSERVERONCONFIGPATH
LOGG=$INFORMIXDIR/log
#建立数据存放目录
YUE=`date+%Y%m`
if[!-d${LOGG}/${YUE}]
then
mkdir${LOGG}/html/${YUE}>/dev/null2>&1
mkdir${LOGG}/data/${YUE}>/dev/null2>&1
fi
#准备临时数据目录
TMP=/tmp/GLO;mkdir$TMP
#数据文件名:格式MMDD-HHMM
D=`/bin/date+%m%d-%H%M`
GLODAT=${LOGG}/data/${YUE}/${D}.glo
tdir=${LOGG}/html/${YUE}
bname=`/bin/basename$GLODAT`
umask133
#采集数据
getdata(){
#提取统计项目
onstat-gglo|awk'{print$3}'|sed-e'1,/^class/d'-e'/^$/d'|sed'$d'>${TMP}/glotmp
#采集数据:时间间隔100秒
foriin1234567
do
onstat-gglo|awk'{print$6}'|sed-e'1,/total/d'-e'/^$/d'>${TMP}/glo.$i
paste${TMP}/glotmp${TMP}/glo.${i}>${TMP}/glo.$$
mv${TMP}/glo.$$${TMP}/glotmp
[$i-lt7]&&sleep100
done
awk'{printf"%s",$1;for(i=2;i<9;printf"%.2f",$i++);
for(i=3;i<9;i++)printf"%.2f",($i-$(i-1));
for(i=4;i<9;i++)printf"%.2f",($i-$2);printf"\n"}'${TMP}/glotmp
}
body(){
cat$GLODAT|whilereadline
do
printf"
set$line
j=0
foriin$*
do
if["$j"!="0"]
then
printf"%.2f \n"$i
else
printf"%s \n"$i
fi
j=j+1
done
printf"\n"
done
}
header(){
cat-<
A B C D E F G 时段一 时段二 时段三 时段四 时段五 时段六 200秒 300秒 400秒 500秒 600秒
!
}
tailer(){
D=`date+%Y/%m/%d-%H:%M`
cat-<
!
}
#programmainbody
getdata >$GLODAT
header >$tdir/$bname.html
body >>$tdir/$bname.html
tailer >>$tdir/$bname.html
rm-rf${TMP}
输出样例: