中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 程序开发 > 数据库开发 > Informix
【原创】用shell实现informix的性能监控[抛砖引玉]
作者:未知 时间:2005-09-13 19:04 出处:ChinaUnix.net 责编:chinaitpower
              摘要:【原创】用shell实现informix的性能监控[抛砖引玉]

用shell实现informix的性能监控,并以html格式输出,直观方便。
适合informix系统初建时监控系统性能。
本例是按cron机制运行设计的,安排它在每天系统繁忙时进行监控,以便对系统的资源分配,参数设置进行分析和合理调整。
[code:1:eeefa54fd9]#!/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}[/code:1:eeefa54fd9]
输出样例:






【发表回复】【查看CU论坛原帖】【添加到收藏夹】【关闭
 caosir 回复于:2003-12-29 01:13:53
顶一下,不过生成报表的活,用perl最好了  :em02:

 xixihaha009 回复于:2003-12-29 09:32:19
好东西,收下了
谢谢楼主分享

 czw1413_cn 回复于:2003-12-29 18:52:46
楼主的功力还是很深厚的哟
不过用perl可能确实方便,还可以分析到很多指标

 admirer 回复于:2003-12-29 19:54:11
[quote:074505af90="czw1413_cn"]楼主的功力还是很深厚的哟
不过用perl可能确实方便,还可以分析到很多指标[/quote:074505af90]
谢谢鼓励!
有空一定学学perl!!

 amiescort 回复于:2003-12-29 21:27:11
靠,走错门了,一屋子的达人……

 alinxiong 回复于:2003-12-30 09:52:31
高,又学了一招

关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有