informix 监控shell
在网上看到一些监控informix的shell脚本或方法。在此记录一下。
1、用shell实现informix的性能监控,并以html格式输出,直观方便。
(转自:http://www.7dtest.com/site/forum.php?mod=viewthread&tid=2435&highlight=informix)
适合informix系统初建时监控系统性能。
本例是按cron机制运行设计的,安排它在每天系统繁忙时进行监控,以便对系统的资源分配,参数设置进行分析和合理调整。
#!/bin/ksh #ScriptName:getgloinfo #定义环境变量 INFORMIXDIR=/usr/informix INFORMIXSERVER=server0 ONCONFIG=onconfig.server0 PATH=$PATH:$INFORMIXDIR/bin export INFORMIXDIR INFORMIXSERVER ONCONFIG PATH LOGG=$INFORMIXDIR/log #建立数据存放目录 YUE=`date +%Y%m` if [ ! -d ${LOGG}/${YUE} ] then mkdir ${LOGG}/html/${YUE} >;/dev/null 2>;&1 mkdir ${LOGG}/data/${YUE} >;/dev/null 2>;&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` umask 133 #采集数据 getdata(){ #提取统计项目 onstat -g glo|awk '{print $3}'|sed -e '1,/^class/d' -e '/^$/d'|sed '$d' >;${TMP}/glotmp #采集数据:时间间隔100秒 for i in 1 2 3 4 5 6 7 do onstat -g glo|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 -lt 7 ] && sleep 100 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|while read line do printf "<tr align=\"center\" valign=\"middle\">;<font size=\"1\">;\n" set $line j=0 for i in $* 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>; <table width="95%" border="1" align="center" bordercolorlight="#FFCCCC" bordercolordark="#FF6633">; <CAPTION>;<FONT SIZE=+2>;<b>;${bname}</b>;</FONT>;</CAPTION>; <tr align="center" valign="middle">;<font face="宋体">; <td rowspan=2>;<font size=2>;VPS</font>;</td>; <td colspan=7>;<font size=+2>;原始数据(onstat -g glo)</font>;</td>; <td colspan=6>;<font size=+2>;资源利用率(%)</font>;</td>; <td colspan=5>;<font size=+2>;累计利用量(秒)</font>;</td>; </tr>; <tr align="center" valign="middle">;<font size="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>;<font size="1">;Report Date:${D}</font>;</p>; </html>; ! } # program main body getdata >;$GLODAT header >;$tdir/$bname.html body >;>;$tdir/$bname.html tailer >;>;$tdir/$bname.html rm -rf ${TMP}
输出样例: