自动重启 WebSphere Application Server (2)

三、实现脚本
1、自动停止WAS脚本
#!/bin/sh
#stopwas4linux.sh
#carpnet
#
#用法:stopServer <server> [options]
#        options: -nowait
#                 -quiet
#                 -logfile <filename>
#                 -replacelog
#                 -trace
#                 -timeout <seconds>
#                 -statusport <portnumber>
#                 -conntype <connector type>
#                 -port <portnumber>
#                 -username <name>
#                 -password <password>
#                 -help
#

Basepath="/IBM/WebSphere/AppServer"

tmpappsrvs=`$Basepath/bin/serverStatus.sh -all|sed 's/ADMU0506I://g'|grep -v nodeagent|sed 's/ //g'|sed 's/:/:/g'|awk -F ':' '{ORS=" "}{print $2}'`

nullstr=`echo $tmpappsrvs|sed /^[[:space:]]*$/d`
if [ "$nullstr" = "" ]
then
    echo "[`date`] 服务器实例列表还是为空:$nullstr,异常退出"
    exit 0
fi

if [ "$tmpappsrvs" != " " ]
then
    echo "[`date`] 开始读取`hostname`的应用服务器WAS"
    echo "[`date`]   所有实例为:$tmpappsrvs"
    echo "[`date`] 结束读取`hostname`的应用服务器WAS"
   
    echo "[`date`] 开始停止`hostname`的应用服务器WAS"
    count=0
    for srv in $tmpappsrvs
    do
        count=`expr $count + 1`
        echo "[`date`]   读取即将停止的应用服务器WAS实例($count)[$srv]"
        $Basepath/bin/stopServer.sh $srv -quiet &
    done
   
    #停止进程过程需要一定的时间
    sleep 200
    echo "[`date`] 结束停止`hostname`的应用服务器WAS"
fi

exit 0

2、自动启动WAS脚本
#!/bin/sh
#startwas4linux.sh
#carpnet
#
#用法:startServer <server> [options]
#        options: -nowait
#                 -quiet
#                 -logfile <filename>
#                 -replacelog
#                 -trace
#                 -script. [<script. filename>] [-background]
#                 -timeout <seconds>
#                 -statusport <portnumber>
#                 -help
#

Basepath="/IBM/WebSphere/AppServer"

tmpappsrvs=`$Basepath/bin/serverStatus.sh -all|sed 's/ADMU0506I://g'|grep -v nodeagent|sed 's/ //g'|sed 's/:/:/g'|awk -F ':' '{ORS=" "}{print $2}'`

nullstr=`echo $tmpappsrvs|sed /^[[:space:]]*$/d`
if [ "$nullstr" = "" ]
then
    echo "[`date`] 服务器实例列表还是为空:$nullstr,异常退出"
    exit 0
fi

if [ "$tmpappsrvs" != "" ]
then
    echo "[`date`] 开始读取`hostname`的应用服务器WAS"
    echo "[`date`]   所有实例为:$tmpappsrvs"
    echo "[`date`] 结束读取`hostname`的应用服务器WAS"
   
    echo "[`date`] 开始启动`hostname`的应用服务器WAS"
    count=0
    for srv in $tmpappsrvs
    do
        count=`expr $count + 1`
        echo "[`date`]   读取即将启动的应用服务器WAS实例($count)[$srv]"
        $Basepath/bin/startServer.sh $srv -quiet &
    done
   
    #启动进程过程需要一定的时间
    sleep 200
    echo "[`date`] 结束启动`hostname`的应用服务器WAS"
fi

exit 0

四、应用成效
在生产环境下,操作系统默认字符集无论是中文还是英文,通过设置定时任务,自动定时运行以上脚本,能够如你所求正常的、自动停/启WAS,而无需人工干涉。

五、结论
自动重启WAS的脚本关键是如何获取server列表,可通过WAS本身提供的命令serverStatus.sh -all后加以过滤来实现;然后通过停止、启动命令stopServer.sh、startServer.sh循环调用server列表批量停启server;再辅以操作系统crontab命令定时策略设定自动停启周期和时间,这样,通过以上三个步骤,就能够达到WAS停启的自动化目标。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值