weblogic10本版自动化补丁脚本
该脚本涉及Linux系统和AIX
#!/bin/bash
#!/bin/ksh
#-------
# shell coding ANSI
#
#---修改参数----
#版本备份包
bakweblogic=wlsbakxxxxx.tar
#软件下发目录
xfmd=/dir/xxxxx
#weblogic开发根目录
r_path=/weblogic/wls1036
#备份文件目录
bak_path=/weblogic/wls_bak
#临时目录
tmp_path=/tmp/weblogic/log
#-------------
ps -ef | grep Name= | grep -v grep | awk {'print $2'} | xargds kill -9
#删除不必要的文件
cd $r_path
tar cf $bak_path/$bakweblogic.tar
#移除相关文件
mkdir -p $r_path/utils/bsu/cache_dir
#查看当前系统类型
os_type=`uname`
#系统语言
lang_value=`echo $LANG`
echo $lang_value
#删除冲突版本
rm_banben()
{
while (( $patch_errlist_num > 0 ))
do
value=`sed -n $patch_errlist_num\p $tmp_path/list.log`
if [ "$os_type" =="Linux" ]; then
banbenlist=($(echo $value | sed -e 's/,/ /g'))
echo $banbenlist
endnum=${#banbenlist[@]}
elif [ "$os_type" == "AIX" ]; then
banbenlista=`echo $value | sed -e 's/,/ /g'`
echo $banbenlista
eval set -A banbenlist $banbenlista
endnum=${#banbenlist[*]}
fi
echo $endnum
while (( $endnum > 0 ))
do
let endnum=endnum-1
banben=${banbenlist[$endnum]}
echo "*** 删除冲突补丁:$banben ***"
sh bsu.sh -remove -patchlist=$banben -prod_dir=$r_path/wlserver_10.3/
echo "*** $banben 删除成功 ***"
done
let patch_errlist_num=patch_errlist_num -1
done
return 0
}
clashBb(){
cat $tmp_path/patch_list.log | grep "互斥排斥且不能共存" | awk '{print $4}' > $tmp_path/list.log
patch_errlist_num=`cat $tmp_path/list.log | wc -l`
return $patch_errlist_num
}
value_all(){
if [ $1 -eq 0 ]; then
echo "$2 OK!"
else
export LANF=$lang_value
echo "$2 error !!! $3 "
}
up_Banben(){
echo "*** 开始安装 $upbanben 版本补丁 ***"
sh bsu.sh -install -patch_download_dir=$r_path/utils/bsu/cache_dir/ -patchlist=$upBanBen -prod_dir=$r_path/wlserver_10.3/ -verbose > $tmp_path/patch_list.log 2>&1
patch_oklist_num=`cat $tmp_path/patch_list.log | grep "结果:成功" | wc -l`
if [$patch_oklist_num = 1]; then
echo "*** $upBanBen 升级成功 ***"
return 0
else
clashBb
if [ $? -ne 0 ]; then
echo "*** 存在冲突版本: ***"
cat $tmp_path/list.log
echo "*** 开始删除冲突版本 ***"
return 1
else
return 2
fi
fi
}
up_weblogic(){
echo " *** 准备 $upBanBen 升级 *** "
mkdir -p $tmp_path
export LANG='zh_CN.gbk'
cd $r_path/utils/bsu/cache_dir/
rm -rf $r_path/utils/bsu/cache_dir/*
cp $xfmd/$weblogictar
tar xf $weblogictar && ls -al
value_all $? "tar"
#修改bsu.sh文件参数
if [ "$os_type" == "Linux" ]; then
sed -i "s/Xmx.*m/-Xmx.5120m/g" $r_path/utils/bsu/bsu.sh
elif [ "$os_type" == "AIX" ]; then
cat $r_path/utils/bsu/bsu.sh | sed 's/Xmx.*m/-Xmx.5120m/g' | tee $r_path/utils/bsu/bsu.sh
fi
cat $r_path/utils/bsu/bsu.sh
cd $r_path/utils/bsu
echo "*** 安装补丁 $upBanBen ***"
up_Banben
if [ $? -eq 1 ]; then
rm_banben
up_Banben
if [ $?-eq 0 ]; then
return 0
else
return 1
fi
elif [ $? -eq 2 ]; then
echo "*** you can: cat $tmp_path/patch_list.log find the problem ***"
return 0
fi
# rm -rf $tmp_path
}
#------可修改参数---------
#版本编号
upBanBen=xxxx
#升级版本包
weblogictar=weblgic-1.tar
up_weblogic
if [ $? -eq 0 ]; then
echo "$upBanBen ok"
else
export LANG=$lang_value
echo "$upBanBen error !! " && exit 1
fi
#-------服务启动
echo "up services Admin XXXX"
#启动脚本目录
sh $r_path/bin/startAdmin.sh
value_all $? "Admin Server" "please restart"