用shell实现Informix的性能监控
来源: 数据库 | 作者: 不详 | 发布: 2008-5-04 19:09
?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" "}"${TMP}/glotmp
}
body(){
cat$GLODAT|whilereadline
do
printf" "
set$line
j=0
foriin$*
do
if["$j"!="0"]
then
printf"%.2f "$i
else
printf"%s "$i
fi
j=j+1
done
printf" "
done
}
header(){
cat-<
${bname}
VPS
????(onstat-gglo)
?????(%)
?????(?)
A
B
C
D
E
F
G
???
???
???
???
???
???
200?
300?
400?
500?
600?
!
}
tailer(){
D=`date+%Y/%m/%d-%H:%M`
cat-<
ReportDate:${D}
!
}
#programmainbody
getdata >$GLODAT
header >$tdir/$bname.html
body >>$tdir/$bname.html
tailer >>$tdir/$bname.html
rm-rf${TMP}
?????

