a=(" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ")
TOMCAT_HOME=/opt/oracle/tomcat
sprint_status()
{
echo
echo "Processes in Instance: `hostname`"
echo "-----------------------------+------------+-----------"
echo "instance | status | pid "
echo "-----------------------------+------------+-----------"
for i in `ls -l $TOMCAT_HOME| awk '/^d/{ print $NF}'`
do
str=`echo $i | awk '{print length($1)}'`
ps aux | grep -w $i | grep -v "grep" | grep -vw "sh" > /dev/null
ret=$?
if [ $ret -eq 0 ]; then
echo "$i${a:$str}| Alive | `ps aux | grep -w $i|grep -vw "sh" |grep -v "grep"| awk '{print $2}'` "
else
echo "$i${a:$str}| Down | N/A "
fi
RETVAL=$?
done
echo
exit
}
sprint_status
测试:

[root@SOR_SYS zy]# ls -l /opt/oracle/tomcat/ |awk '/^d/{ print $NF}'
tomcatServer229-1
tomcatServer229-2
[root@SOR_SYS zy]# echo tomcatServer229-1|awk '{print length($1)}'
17
[root@SOR_SYS zy]# a=(" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ")
[root@SOR_SYS zy]# echo "tomcatServer229-1${a:17}|Alive | pid"
tomcatServer229-1 |Alive | pid
[root@SOR_SYS zy]#
标绿的地方就是对空格的处理,实际上实例的长度不能够大于a中规定的字符的长度,如果超过了会怎么样呢?
Processes in Instance: SOR_SYS.99bill.com
-----------------------------+------------+-----------
instance | status | pid
-----------------------------+------------+-----------
tomcatServer229-1 | Down | N/A
tomcatServer229-2 | Down | N/A
tomcat-tomcat-tomcat-tomcat-tomcat-tomcat| Down | N/A

本文档展示了在检查Tomcat实例状态时,如何处理输出中的空格以适应不同长度的实例名称。通过使用 Awk 命令显示目录下的 Tomcat 服务器实例,并在名称后添加空格以对齐。当实例名称长度超过预设空格数时,可能导致显示不正确,如 'tomcat-tomcat-tomcat-tomcat-tomcat-tomcat' 这样的长名称会导致对齐混乱。
1193

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



