大家都知道使用crs_stat命令来查rac集群资源的状态非常方便,尽管11g之后官方不在推荐继续使用保留仅是为了向下兼容。但是这个命令对于我个人来说用的频率还是非常高的。但是在使用crs_stat -t 参数查看的时候,name列总是不能完全显示。之前在ITpub的帖子中见过有人在评论去发出来脚步,当时只留下了脚本原文链接找不到了,这里把脚本和大家分享一下。
如图这是正常显示的效果很多资源的名称由于过长都会省略显示,下面是使用脚步处理过之后的显示效果
对比可以发现少了type列,其实这个结果就是根据crs_stat命令的结果通过 Linux命令的结果进行处理的。下面把脚本分享给大家,也可以根据自己的情况修改:
--------------------start --------------------------------------------------------------------------------
#!/bin/bash
# Description:
# - Returns formatted version of crs_stat -t, in tabular
# format, with the complete rsc names and filtering keywords
# - The argument, $RSC_KEY, is optional and if passed to the script, will
# limit the output to HA resources whose names match $RSC_KEY.
# Requirements:
# - $ORA_CRS_HOME should be set in your environment
RSC_KEY=$1
QSTAT=-u
AWK=/bin/awk # if not available use /usr/bin/awk
# Table header:echo ""
$AWK \
'BEGIN {printf "%-45s %-10s %-18s\n", "HA Resource", "Target", "State";
printf "%-45s %-10s %-18s\n", "-------------------------------------", "------", "-------------------";}'
# Table body:
$ORACLE_HOME/bin/crs_stat $QSTAT | $AWK \
'BEGIN { FS="="; state = 0; }
$1~/NAME/ && $2~/'$RSC_KEY'/ {appname = $2; state=1};
state == 0 {next;}
$1~/TARGET/ && state == 1 {apptarget = $2; state=2;}
$1~/STATE/ && state == 2 {appstate = $2; state=3;}
state == 3 {printf "%-45s %-10s %-18s\n", appname, apptarget, appstate; state=0;}'
----------------------------------end------------------------------------------------------------------------------------------------
如图这是正常显示的效果很多资源的名称由于过长都会省略显示,下面是使用脚步处理过之后的显示效果
对比可以发现少了type列,其实这个结果就是根据crs_stat命令的结果通过 Linux命令的结果进行处理的。下面把脚本分享给大家,也可以根据自己的情况修改:
--------------------start --------------------------------------------------------------------------------
#!/bin/bash
# Description:
# - Returns formatted version of crs_stat -t, in tabular
# format, with the complete rsc names and filtering keywords
# - The argument, $RSC_KEY, is optional and if passed to the script, will
# limit the output to HA resources whose names match $RSC_KEY.
# Requirements:
# - $ORA_CRS_HOME should be set in your environment
RSC_KEY=$1
QSTAT=-u
AWK=/bin/awk # if not available use /usr/bin/awk
# Table header:echo ""
$AWK \
'BEGIN {printf "%-45s %-10s %-18s\n", "HA Resource", "Target", "State";
printf "%-45s %-10s %-18s\n", "-------------------------------------", "------", "-------------------";}'
# Table body:
$ORACLE_HOME/bin/crs_stat $QSTAT | $AWK \
'BEGIN { FS="="; state = 0; }
$1~/NAME/ && $2~/'$RSC_KEY'/ {appname = $2; state=1};
state == 0 {next;}
$1~/TARGET/ && state == 1 {apptarget = $2; state=2;}
$1~/STATE/ && state == 2 {appstate = $2; state=3;}
state == 3 {printf "%-45s %-10s %-18s\n", appname, apptarget, appstate; state=0;}'
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26723566/viewspace-2124096/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/26723566/viewspace-2124096/