oramon

来自「一个Oracle性能监视工具」· 代码 · 共 106 行

TXT
106
字号
Syntax()
{
echo 'oramon 2.1 beta by Raymond Vermeer\n'
echo 'Usage: oramon [ses cpu|disk      [interval count records]]'
echo '       oramon [usr sid statistic [interval count records]]'
echo '       oramon [sql sid           [interval count records]]'
echo '       oramon [tbs               [interval count records]]'
echo '       oramon [dbf               [interval count records]]'
echo '       oramon [fio nodelta|delta [interval count records]]'
echo '       oramon [rbs               [interval count records]]'
echo '\n'
echo '       ses = session information'
echo '       usr = user information'
echo '       sql = user sql information'
echo '       tbs = tablespace information'
echo '       dbf = datafile information'
echo '       fio = datafile io information'
echo '       rbs = rollback information'
echo '\n'
echo '       default => oramon 5 99999999999999 20 ses disk'
exit 0
}

DISPLAY=$1
case $DISPLAY in
'-h'|'-H'|'-?') Syntax
                ;;
         'ses') INTERVAL=$3
                COUNT=$4
                NUMBER=$5
                case "${2}" in 
                'CPU'|'cpu')   PAR1=6
                               ;;
                'DISK'|'disk') PAR1=5
                               ;;
                *)             PAR1=5
                               ;;
                esac
                ;;
         'usr') INTERVAL=$4
                COUNT=$5
                NUMBER=$6
                PAR1=$2
                PAR2=$3
                if [ "${PAR1}" = "" -o "${PAR2}" = "" ]
                 then
                   Syntax
                fi
                ;;
         'sql') INTERVAL=$3
                COUNT=$4
                NUMBER=$5
                PAR1=$2
                if [ "${PAR1}" = "" ]
                 then
                   Syntax
                fi
                ;;
         'fio') PAR1=$3
                PAR2=$4
                PAR3=$2
                if [ "${PAR3}" = "" ]
                 then
                   Syntax
                fi
                if [ "${PAR1}" = "" ]
                 then
                   PAR1=4
                fi
                if [ "${PAR2}" = "" ]
                 then
                   PAR2=99999999999999
                fi
                ;;
         *)     INTERVAL=5
                COUNT=99999999999999
                NUMBER=20
                if [ "${1}" = "" ]
                 then
                   DISPLAY=ses
                   PAR1=5
                fi
                ;;
esac

[ "${INTERVAL}" = "" ] && INTERVAL=5
[ "${COUNT}" = "" ] && COUNT=99999999999999
[ "${NUMBER}" = "" ] && NUMBER=20

##echo "@${DISPLAY}mon ${NUMBER} ${PAR1} ${PAR2} ${PAR3}"
##exit
typeset -Z12 TELLER=0
while [ "$TELLER" -lt ${COUNT} ]
do
   (( TELLER = TELLER + 1 ))
   clear
   sqlplus -s / << EOF
    @hdrmon
    @${DISPLAY}mon ${NUMBER} ${PAR1} ${PAR2} ${PAR3}
EOF
   if [ ${COUNT} -gt 1 ]
    then
      sleep ${INTERVAL}
   fi
done

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?