shell实现informix的性能监控

用shell实现informix的 性能监控,并以html格式输出,直观方便。

适合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}
输出样例:
 000_92171072622443.jpg
 
 
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值