本篇内容介绍了"怎么获取AWR的脚本"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
#!/bin/bash
# byraysuen
#v02。~/.bash_profile
AWR格式=html
NUM_DAYS=2
############################################
#获取指定时间的snapid的函数
############################################
getSnapid(){ 0
BEgin _ SNAP _ ID=` sqlplus-S/assysdba-RAY
setheading trimmpoolonfeedbackoff
从DBA _ HIST _ SNAPSHOTa、v \ \ $ instance中选择trim(SNAP _ ID),其中to _ char(END _ INTERVAL _ TIME,' yymmdhh 34 ')=' $ 1 '和。实例号=b . instance _ number
雷的
END _ SNAP _ ID=` sqlplus-S/assysdba-RAY
setheading trimmpoolonfeedbackoff
从DBA _ HIST _ SNAPSHOTa、v \ \ $ instance中选择trim(SNAP _ ID),其中to _ char(END _ INTERVAL _ TIME,' yyyymmdh 34 ')=' $ 2 '和。实例号=b . instance _ number
雷的
#判断获取的snapid是否为空
if[-z $ { BEgin _ SNAP _ ID }];然后
echo“scriptcanotagevaluidsnapid,pleatertalarighttimefor-b”
exit96
船方不负担装货费用
if[-z $ { BEgin _ SNAP _ ID }];然后
echo“scriptcanotagevaluidsnapid,pleatertararighttimefor-e”
exit96
船方不负担装货费用
BEgin _ SNAP _ ID=` echo $ { BEgin _ SNAP _ ID } | sed的///g ' '
END _ SNAP _ ID=` echo $ { END _ SNAP _ ID } | sed的///g ' '
}
############################################
#获取帮助的函数
############################################
my _ fun(){ 0
回声'概要: '
回声报/GET _ AWR。' sh-bbe gin _ time-eend _ time-nawr _ name '
回声选项:
echo '-b specificyatimeforbegintimefor,formatyyyymmddhh34 '
' echo '-指定一个specifyatimeforbegintimeofor,formatyyyymmddhh34 '
"回声“-n指定
name for name of awr"
echo "EXAMPLE:"
echo " ./GET_AWR.SH -b 2019051708 -e 2019051709 -n test"
echo " ./GET_AWR.sh -b \`date +'%Y%m%d18' -d '+1 day ago'\` -e \`date +'%Y%m%d19' -d '+1 day ago'\` -n test"
}
############################################
#脚本入口,获取参数
############################################
if [ $# -lt 1 ];then
echo "You must specify parameters:"
echo " -b begin time of awr"
echo " -e end time of awr"
exit 99
fi
while (($#>=1))
do
if [ "$1" == "-b" ];then
shift
awrbegintime=$1
shift
continue
fi
if [ "$1" == "-e" ];then
shift
awrendtime=$1
shift
continue
fi
if [ "$1" == "-n" ];then
shift
awrname=$1
shift
continue
fi
if [ "$1" == "-h" ];then
my_fun
exit 0
fi
shift
done
############################################
#健壮性检查
############################################
#参数不可以为空
if [ -z ${awrbegintime} ];then
echo "You must specify parameters:-b for begin time of awr"
exit 98
fi
if [ -z ${awrendtime} ];then
echo "You must specify parameters:-e for end time of awr"
exit 98
fi
if [ -z ${awrname} ];then
echo "You must specify parameters:-n for report name of awr"
exit 98
fi
#判断参数为时间
date -d "${awrbegintime:0:8} ${awrbegintime:8:2}" > /dev/null 2>&1
if [ $? -ne 0 ];then
echo "The valus of -b is invalid date."
exit 97
fi
date -d "${awrendtime:0:8} ${awrendtime:8:2}" > /dev/null 2>&1
if [ $? -ne 0 ];then
echo "The valus of -e is invalid date."
exit 97
fi
############################################
#执行函数,获取snap id
############################################
getsnapID ${awrbegintime} ${awrendtime}
############################################
#定义awr报告的路径
############################################
AWR_LOG=/u02/logout/awr/AWR_${awrname}_${awrbegintime}_${awrendtime}.html
############################################
#获取awr报告
############################################
echo -e "$AWR_FORMAT\n$NUM_DAYS\n$BEGIN_SNAP_ID\n$END_SNAP_ID\n$AWR_LOG\n"|(sqlplus -S / as sysdba @?/rdbms/admin/awrrpt.sql) > /dev/null
############################################
#帮助:
# 参数区分大小写
# -b awr的开始时间,格式:yyyymmddhh34
# -e awr的结束时间,格式:yyyymmddhh34
# -n awr报告中的名字
#例子:
# ./GET_AWR.SH -b "2019051708" -e "2019051709" -n test
# ./GET_AWR.sh -b `date +'%Y%m%d18' -d '+1 day ago'` -e `date +'%Y%m%d19' -d '+1 day ago'` -n test
############################################
“怎么获取AWR的脚本”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/77265.html