|
用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} 输出样例:
|