用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"

  1<tralign=\"center\"valign=\"middle\"><fontsize=\"1\">\n"   
  2  
  3set$line   
  4  
  5j=0   
  6  
  7foriin$*   
  8  
  9do   
 10  
 11if["$j"!="0"]   
 12  
 13then   
 14  
 15printf"<td>%.2f</td>\n"$i   
 16  
 17else   
 18  
 19printf"<td>%s</td>\n"$i   
 20  
 21fi   
 22  
 23j=j+1   
 24  
 25done   
 26  
 27printf"\n"   
 28  
 29done   
 30  
 31}   
 32  
 33header(){   
 34  
 35cat-&lt;<!--   
 36  
 37<html-->
 38<body>
 39<tablewidth="95%"border="1"align="center"bordercolorlight="#ffcccc"bordercolordark="#ff6633">
 40<caption><fontsize=+2><b>${bname}</b></fontsize=+2></caption>
 41<tralign="center"valign="middle"><fontface="宋体">
 42<tdrowspan=2><fontsize=2>VPS
 43<tdcolspan=7><fontsize=+2>原始数据(onstat-gglo)
 44<tdcolspan=6><fontsize=+2>资源利用率(%)
 45<tdcolspan=5><fontsize=+2>累计利用量(秒)
 46
 47<tralign="center"valign="middle"><fontsize="1">
 48<td>A</td>
 49<td>B</td>
 50<td>C</td>
 51<td>D</td>
 52<td>E</td>
 53<td>F</td>
 54<td>G</td>
 55<td>时段一</td>
 56<td>时段二</td>
 57<td>时段三</td>
 58<td>时段四</td>
 59<td>时段五</td>
 60<td>时段六</td>
 61<td>200秒</td>
 62<td>300秒</td>
 63<td>400秒</td>
 64<td>500秒</td>
 65<td>600秒</td>
 66   
 67  
 68!   
 69  
 70}   
 71  
 72tailer(){   
 73  
 74D=`date+%Y/%m/%d-%H:%M`   
 75  
 76cat-&lt;<!--   
 77  
 78</table-->
 79<p><fontsize="1">ReportDate:${D}</fontsize="1"></p>
 80   
 81  
 82!   
 83  
 84}   
 85  
 86#programmainbody   
 87  
 88getdata &gt;$GLODAT   
 89  
 90header &gt;$tdir/$bname.html   
 91  
 92body &gt;&gt;$tdir/$bname.html   
 93  
 94tailer &gt;&gt;$tdir/$bname.html   
 95  
 96rm-rf${TMP}   
 97  
 98输出样例: 
 99
100![](http://www.cndw.com/ShowImg.asp?p=/2006-3-18/26407a1443490.jpg)</fontsize="1"></tralign="center"valign="middle"></fontsize=+2></tdcolspan=5></fontsize=+2></tdcolspan=6></fontsize=+2></tdcolspan=7></fontsize=2></tdrowspan=2></fontface="宋体"></tralign="center"valign="middle"></tablewidth="95%"border="1"align="center"bordercolorlight="#ffcccc"bordercolordark="#ff6633"></body></fontsize=\"1\"></tralign=\"center\"valign=\"middle\">
Published At
Categories with 数据库类
comments powered by Disqus