分类: DB2/Informix
2005-12-16 12:20:26
#!/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"
################################################################################