📄 extent1.sh.shtml
字号:
<HTML><HEAD><TITLE>PRS Technologies, Inc. - script: extent1.sh</TITLE><META NAME="Description" content="PRS Technologies Inc. - Report on database size for an online engine database"><STYLE TYPE="text/css"><!--A.CLASS1 {background-color: #000066; color: white; letter-spacing: 0.2ex; font-size: 14pt; text-decoration: none;}A:hover.CLASS1 { background-color: #ffffcc; color: black;}--></STYLE><SCRIPT>defaultStatus = "PRS Technologies Inc. - script: extent1.sh";</SCRIPT></HEAD></CENTER><CENTER><TABLE border=0 cellspacing=0 cellpadding=0 width=90%><TR><TD> <CENTER> <IMG SRC="../gif/prs_tech_top_of_page1.gif" border=0 align=center alt="PRS Technologies Home Page"> </CENTER></TD></TR><TR><TD> <CENTER> <TABLE border=2 cellspacing=0 cellpadding=0> <TR> <td><A HREF="../index.shtml" CLASS=CLASS1> Home </A> <td><A HREF="../resume.shtml" CLASS=CLASS1> Associates </A> <td><A HREF="../references.shtml" CLASS=CLASS1> References </A> <td><A HREF="../downloads.shtml" CLASS=CLASS1> Downloads </A> <td><A HREF="../elite1.shtml" CLASS=CLASS1> Elite </A> <td><A HREF="../links.shtml" CLASS=CLASS1> Links </A> <td><A HREF="../contacts.shtml" CLASS=CLASS1> Contact Us </A> </TR> </TABLE> </CENTER></TD></TR></TABLE></CENTER><BR><CENTER><TABLE border=0 cellpadding=4 bgcolor=e7e7ce><tr><td><font color=#000066 size=+2><B>extent1.sh</B></font></td></tr></table></CENTER><XMP>#!/usr/bin/ksh################################################################################# Module: extent1.sh# Author: Peter R. Schmidt# Description: Report on database size for an online engine database## Change Log## Date Name Description.................# 02/17/98 Peter R. Schmidt Start Program # 07/07/99 Peter R. Schmidt Updated# 07/27/99 Peter R. Schmidt Updated################################################################################OUTPUT=extent1.outTMPFILE=extent1.tmpPAGESIZE=2BG=false###############################################################################if [ $# != 0 ]then ARG1=$1 case $ARG1 in 1|2|3|4) OPTION1=$ARG1;; *) OPTION1=2;; esac ARG2=$2 case $ARG2 in 1|2|3|4) OPTION2=$ARG2;; *) OPTION2=2;; esac BG=trueelse tput clear while true do echo "Report on extent sizes for an Informix online engine database" echo echo "Specify Order" echo echo "1 = Size" echo "2 = Number of extents" echo "3 = Table name" echo "4 = Database/Table name" echo "0 = Exit this program" echo echo "Enter sort sequence desired (0,1,2,3 or 4)" read OPTION1 case $OPTION1 in 0|1|2|3|4) break;; esac echo echo "Error - you must enter 0,1,2,3 or 4!" echo done while true do echo echo "1 = Report in Megs" echo "2 = Report in Kbytes" echo "3 = Report in Pages" echo "4 = Report in Bytes" echo "0 = Exit this program" echo echo "Enter reporting unit desired (0,1,2,3,4)" read OPTION2 case $OPTION2 in 0|1|2|3|4) break;; esac echo echo "Error - you must enter 0,1,2,3 or 4!" echo done fi case $OPTION1 in 0) echo "End requested by user"; exit;; 1) SORT="4"; ORDER=desc; ORDERBY=Size;; 2) SORT="3"; ORDER=desc; ORDERBY="Number-of-Extents";; 3) SORT="2"; ORDER=asc; ORDERBY=Tablename;; 4) SORT="1,2"; ORDER=asc; ORDERBY="Database/Tablename";;esaccase $OPTION2 in 0) echo "End requested by user"; exit;; 1) UNIT=M; UNITDESC=Mbytes;; 2) UNIT=K; UNITDESC=Kbytes;; 3) UNIT=P; UNITDESC=Pages;; 4) UNIT=B; UNITDESC=Bytes;;esacif [ -f $OUTPUT ]then rm -f $OUTPUTfiif [ -f $TMPFILE ]then rm -f $TMPFILEfiecho "Collecting extent info from the sysmaster database..." dbaccess << EOFdatabase sysmaster;unload to '$TMPFILE' delimiter "|"select dbsname, tabname, count(*) num_of_extents, sum(pe_size) total_sizefrom systabnames, sysptnextwhere partnum = pe_partnum and partnum > 99 and dbsname <> "sysmaster"--and dbsname <> "rootdbs"group by 1,2order by $SORT $ORDER;EOFecho "unload completed"XDATE=`date +%D-%T`echo echo "Completed - formatting report..."echoawk ' \################################################################################# Module: extent1.awk# Author: Peter R. Schmidt# Description: Report on database size for an online engine database# Called by: extent1.sh## Expected variables passed at runtime:## pagesize Informix Page Size# xdate Todays date, format: mm/dd/yy-hh:mm:ss# orderby Sort Order description## Expected Input: Pipe Delimited file with the following 4 fields## database name# table name# number of extents# number of pages## Change Log## Date Name Description.................# 02/17/98 Peter R. Schmidt Start Program # 07/07/99 Peter R. Schmidt Updated# 07/27/99 Peter R. Schmidt Updated################################################################################# INITIALIZE VARIABLES AT BEGINNINGBEGIN { cntline=5 pageno=1 maxextents=0}################################################################################ FIRST LINE ONLY{ if (NR == 1) { split (xdate,b,"-") udate=b[1] utime=b[2] printf "%s %s Informix Extents Report Page: %d\n", udate, utime, pageno printf "\n" printf " Number of Size in\n" printf "DBS:Table Name Extents %s \n", unitdesc printf "\n" }}################################################################################ ON EVERY LINE{ split ($1,a,"|") dbs=a[1] table=a[2] num_extents=a[3] size_P=a[4] size_K=size_P*pagesize size_M=size_K/1024 size_B=size_K*1024 tot_P += size_P tot_K += size_K tot_M += size_M tot_B += size_B if (num_extents > maxextents) { maxextents = num_extents maxdbs = dbs maxtable = table } dbs_table = dbs ":" table if (unit == "M") { printf "%-30s %3d %10.2f\n", dbs_table, num_extents, size_M } if (unit == "K") { printf "%-30s %3d %10d\n", dbs_table, num_extents, size_K } if (unit == "P") { printf "%-30s %3d %10d\n", dbs_table, num_extents, size_P } if (unit == "B") { printf "%-30s %3d %10d\n", dbs_table, num_extents, size_B } cntline++}################################################################################ TOP OF PAGE{ if (cntline == 60) { pageno++ printf "\f\n" printf "%s %s Informix Extents Report Page: %d\n", udate, utime, pageno printf "\n" printf " Number of Size in\n" printf "DBS:Table Name Extents %s \n", unitdesc printf "\n" cntline=5 }}################################################################################ ON LAST LINEEND { printf "\n" if (unit == "M") { printf "Total Size: %-10.2f Meg\n",tot_M } if (unit == "K") { printf "Total Size: %d K\n",tot_K } if (unit == "P") { printf "Total Size: %d Pages\n",tot_P } if (unit == "B") { printf "Total Size: %d Bytes\n",tot_B } printf "Number of tables: %d\n",NR printf "Highest number of extents: %d (%s:%s)\n", maxextents, maxdbs, maxtable printf "Using Informix pagesize of: %d K\n", pagesize printf "Sorted by: %s\n", orderby printf "\n"}################################################################################ END OF AWK SCRIPT' \pagesize=$PAGESIZE \xdate=$XDATE \orderby=$ORDERBY \unit=$UNIT \unitdesc=$UNITDESC \$TMPFILE > $OUTPUT if [ $BG = false ]then pg $OUTPUTfirm -f $TMPFILEechoecho "Note: Output report is in $OUTPUT"################################################################################</XMP><CENTER><TABLE border=2 cellspacing=0 cellpadding=0><TR><td><A HREF="../index.shtml" CLASS=CLASS1> Home </A><td><A HREF="../resume.shtml" CLASS=CLASS1> Associates </A><td><A HREF="../references.shtml" CLASS=CLASS1> References </A><td><A HREF="../downloads.shtml" CLASS=CLASS1> Downloads </A><td><A HREF="../elite1.shtml" CLASS=CLASS1> Elite </A><td><A HREF="../links.shtml" CLASS=CLASS1> Links </A><td><A HREF="../contacts.shtml" CLASS=CLASS1> Contact Us </A></TR></TABLE></CENTER></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -