Chinaunix首页 | 论坛 | 博客
  • 博客访问: 310553
  • 博文数量: 94
  • 博客积分: 2220
  • 博客等级: 大尉
  • 技术积分: 975
  • 用 户 组: 普通用户
  • 注册时间: 2004-12-17 21:17
文章分类

全部博文(94)

文章存档

2011年(5)

2010年(11)

2009年(1)

2008年(2)

2006年(1)

2005年(65)

2004年(9)

我的朋友

分类: DB2/Informix

2005-12-16 12:20:26

有很長時間沒有上來了,這段時間也不知道自己在忙什麼,好像也沒忙出什麼結果來.
今天根據前段時間<<

每天自動報告數據庫中表的空間使用情況

>>的shell,改了一個shell.自動計算online中每個數據庫的容量.

#!/usr/bin/ksh

###############################################################################
DBACCESS=/u1/informix/bin/dbaccess
MAIL_USER=mymailaddress@domain.com
CC_MAIL_LIST="ccmail_address@domain.com"
MAIL_TITLE="The DataBase Size"
OUTPUT=/tmp/r_db_size.out
TMPFILE=/tmp/r_db_size.tmp
PAGESIZE=4
BG=false
SORT="4"
ORDER=desc
ORDERBY=Size
UNIT=M
UNITDESC=Mbytes
###############################################################################
if [ -f $OUTPUT ]
then
        rm -f $OUTPUT
fi

if [ -f $TMPFILE ]
then
       rm -f $TMPFILE
fi

echo "Collecting extent info from the sysmaster database..."
        
$DBACCESS << EOF
database sysmaster;
unload to '$TMPFILE' delimiter "|"
select 
        dbsname,
        tabname,
        count(*) num_of_extents,
        sum(pe_size) total_size
from
        systabnames, sysptnext
where
        partnum = pe_partnum
  and   partnum  > 99
  and   dbsname <> "sysmaster"
--and   dbsname <> "rootdbs"
group by 1,2
order by 1,$SORT $ORDER;
EOF

echo "unload completed"

XDATE=`date +%D-%T`

echo
echo "Completed - formatting report..."
echo

awk '
###############################################################################
BEGIN {
    cntline=5
    pageno=1
    maxextents=0
    lastdb="firstdb"
    t_size=0
    tg_size=0
    t_dbs=0
}
###############################################################################
#       FIRST LINE ONLY
{
    if (NR == 1) {
        split (xdate,b,"-")
        udate=b[1]
        utime=b[2]
        printf "%s %s   Informix database size Report Page: %d ", udate, utime, pageno
        printf " "
        printf "DBS:                                  %s    ", unitdesc
        printf " "
    }
}
###############################################################################
#       ON EVERY LINE

{
        split ($1,a,"|")
        dbs=a[1]
        size_P=a[4]
        size_M=(size_P*pagesize)/1024
        if (lastdb == dbs){
           t_size += size_M
         }
        else {
           tg_size += t_size
           if (NR != 1) {
                 printf "%-35s            %10.2f ",lastdb,t_size
           }
           t_size = size_M
           lastdb = dbs
           t_dbs += 1
         }
}

###############################################################################
#       ON LAST LINE

END {
        printf " "
        printf "Total Size:                 %-10.2f Meg ",tg_size
        printf "Number of databases:           %d ", t_dbs
        printf " "
}

###############################################################################
#       END OF AWK SCRIPT

'
pagesize=$PAGESIZE
xdate=$XDATE
orderby=$ORDERBY
unit=$UNIT
unitdesc=$UNITDESC
$TMPFILE > $OUTPUT

###############################################################################

mail -s "$MAIL_TITLE  $XDATE" -c $CC_MAIL_LIST $MAIL_USER < $OUTPUT #mail -s "$MAIL_TITLE $XDATE" $MAIL_USER < $OUTPUT rm -f $TMPFILE echo echo "Note: Output report is in $OUTPUT"

################################################################################
 

阅读(1897) | 评论(0) | 转发(0) |
0

上一篇:我的python歷程--ISA Log 分析

下一篇:陀螺

给主人留下些什么吧!~~