用shell实现Informix的性能监控

发表于:2007-06-22来源:作者:点击数: 标签:
用shell实现informix的 性能 监控,并以html格式输出,直观方便。 适合informix系统初建时监控系统性能。本例是按cron机制运行设计的,安排它在每天系统繁忙时进行监控,以便对系统的资源分配,参数设置进行分析和合理调整。 #!/bin/ksh #ScriptName:getgloi

   

用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"<tralign=\"center\"valign=\"middle\"><fontsize=\"1\">\n"

set$line

j=0

foriin$*

do

if["$j"!="0"]

then

printf"<td>%.2f</td>\n"$i

else

printf"<td>%s</td>\n"$i

fi

j=j+1

done

printf"</tr>\n"

done

}

header(){

cat-<<!

<html>

<body>

<tablewidth="95%"border="1"align="center"bordercolorlight="#FFCCCC"bordercolordark="#FF6633">

<CAPTION><FONTSIZE=+2><b>${bname}</b></FONT></CAPTION>

<tralign="center"valign="middle"><fontface="宋体">

<tdrowspan=2><fontsize=2>VPS</font></td>

<tdcolspan=7><fontsize=+2>原始数据(onstat-gglo)</font></td>

<tdcolspan=6><fontsize=+2>资源利用率(%)</font></td>

<tdcolspan=5><fontsize=+2>累计利用量(秒)</font></td>

</tr>

<tralign="center"valign="middle"><fontsize="1">

<td>A</td>

<td>B</td>

<td>C</td>

<td>D</td>

<td>E</td>

<td>F</td>

<td>G</td>

<td>时段一</td>

<td>时段二</td>

<td>时段三</td>

<td>时段四</td>

<td>时段五</td>

<td>时段六</td>

<td>200秒</td>

<td>300秒</td>

<td>400秒</td>

<td>500秒</td>

<td>600秒</td>

</tr>

!

}

tailer(){

D=`date+%Y/%m/%d-%H:%M`

cat-<<!

</table>

<p><fontsize="1">ReportDate:${D}</font></p>

</html>

!

}

#programmainbody

getdata >$GLODAT

header >$tdir/$bname.html

body >>$tdir/$bname.html

tailer >>$tdir/$bname.html

rm-rf${TMP}

输出样例:

用shell实现Informix的性能监控(图一)
(点击查看原图)

原文转自:http://www.ltesting.net