无意中网上看到一个脚本,很好的解决了这个问题,感谢作者的辛勤劳动。
crs_stat.sh
awk /
'BEGIN {printf "%-30s %-10s %-10s %-10s/n","Name ","Target ","State ","Host ";
printf "%-30s %-10s %-10s %-10s/n","------------------------------","----------", "---------","-------";}'
crs_stat | awk /
'BEGIN { FS="=| ";state = 0;}
$1~/NAME/ {appname = $2; state=1};
state == 0 {next;}
$1~/TARGET/ && state == 1 {apptarget = $2; state=2;}
$1~/STATE/ && state == 2 {appstate = $2; apphost = $4; state=3;}
state == 3 {printf "%-30s %-10s %-10s %-10s/n", appname,apptarget,appstate,apphost; state=0;}'
效果如下:
[oracle@rac1 u01]$ sh crs_stat.sh
Name Target State Host
------------------------------ ---------- --------- -------
ora.rac1.ASM2.asm ONLINE ONLINE rac1
ora.rac1.LISTENER_RAC1.lsnr ONLINE ONLINE rac1
ora.rac1.gsd ONLINE ONLINE rac1
ora.rac1.ons ONLINE ONLINE rac1
ora.rac1.vip ONLINE ONLINE rac1
ora.rac2.ASM1.asm ONLINE ONLINE rac2
ora.rac2.LISTENER_RAC2.lsnr ONLINE ONLINE rac2
ora.rac2.gsd ONLINE ONLINE rac2
ora.rac2.ons ONLINE ONLINE rac2
ora.rac2.vip ONLINE ONLINE rac2
通过这个脚本,可以完整的显示进程的名称。 我们操作的时候,就方便很多了。
本文介绍了一个用于简化Oracle集群服务(CRS)资源状态查询的Shell脚本。该脚本使用awk命令来解析crs_stat命令的输出,并以表格形式展示资源名称、目标状态、实际状态及主机名等信息。
481

被折叠的 条评论
为什么被折叠?



