如何讓crs_stat命令結果中的name列完全顯示

蘭在晨發表於2016-08-27
大家都知道使用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------------------------------------------------------------------------------------------------

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26723566/viewspace-2124096/,如需轉載,請註明出處,否則將追究法律責任。

相關文章