weblogic 자동화 패 치 스 크 립 트
weblogic 는 매 분기 psu 업데이트 가 있 고 패 치 작업 도 매 분기 마다 해 야 할 일이 되 었 습 니 다. 우 리 는 xshell 등 도 구 를 통 해 한 대의 정지 서비스 패 치 를 통 해 서 비 스 를 시작 합 니 다.단일 컴퓨터 에 배 치 된 weblogic 이 고 수량 이 많 지 않 으 면 다행 입 니 다. 수 동 로그 인 시스템 을 통 해 세트 로 싸 웁 니 다.그렇다면 클 러 스 터 환경 이 고 클 러 스 터 가 여러 대의 weblogic 서버 로 구성 되 어 있다 면 수 동 패 치 방식 은 매우 비효 율 적 이 며 자동화 패 치 방안 이 필요 하 다.
환경 준비
nginx 서버 구축: weblogic 패 치 패키지 (패 치 패 치 를 저장 할 수 있 는 다른 서버 도 가능 합 니 다) weblogic 10.3.6 과 weblogic 12c 환경 각각 세트 (10.3.6 과 12c 두 버 전 패 치 방식 이 다 릅 니 다) 모든 스 크 립 트 는 weblogic 사용자 로 실행 해 야 합 니 다.
weblogic 10.3.6 자동 패 치 스 크 립 트
#!/bin/bash
#PUTIL ,WLSHOME1 weblogic ( )
PUTIL=/u01/wls10/Oracle/Middleware/utils/bsu
WLSHOME1=/u01/wls10/Oracle/Middleware/wlserver_10.3
# jar ,
cd ${PUTIL} && ./bsu.sh -prod_dir=${WLSHOME1} -status=applied -verbose -view | grep jar > tmp_jar
# weblogic10.3.6psu , psu jar , a.jar b.jar
# , a.jar b.jar, b.jar, a.jar
# ,
# tmp_jar tac ,
jar_names=($(tac tmp_jar | awk '{print $NF}' | awk -F '.' '{print $(NF-1)}'))
for jar_name in ${jar_names[@]}; do
echo "remove ${jar_name}"
cd ${PUTIL}/cache_dir && ./bsu.sh -remove -patchlist=${jar_name} -prod_dir=${WLSHOME1}
done
#!/bin/bash
PUTIL=/u01/wls10/Oracle/Middleware/utils/bsu
WLSHOME1=/u01/wls10/Oracle/Middleware/wlserver_10.3
#
# :
if [ -d ${PUTIL}/cache_dir ];then
echo "exsits"
else
mkdir -p ${PUTIL}/cache_dir
chown -R weblogic:weblogic ${PUTIL}/cache_dir
chmod -R 775 ${PUTIL}/cache_dir
fi
#
which wget 2>&1 >/dev/null
if [[ $? -eq 0 ]];then
echo esixt;
else
yum install wget -y
fi
which unzip 2>&1 >/dev/null
if [[ $? -eq 0 ]];then
echo esixt;
else
yum install unzip -y
fi
#PKG_PATCH
cd ${PUTIL}/cache_dir && wget ftp://10.10.10.10/tmp/${PKG_PATCH}
#
cd ${PUTIL}/cache_dir && unzip *.zip
chown weblogic:weblogic -R ${PUTIL}/cache_dir
chmod 775 -R ${PUTIL}/cache_dir
# bsu.sh ,
if [ -f ${PUTIL}/bsu.sh.bak ];then
echo "exsits"
else
cp ${PUTIL}/bsu.sh ${PUTIL}/bsu.sh.bak
cd ${PUTIL} && sed -i '5c MEM_ARGS="-Xms2048m -Xmx4096m -XX:-UseGCOverheadLimit"' ./bsu.sh
fi
# , , weblogic , , kill ,
ps -ef | grep java| grep weblogic | grep -v "grep" 2>&1 >/dev/null
if [[ $? -eq 0 ]];then
ps -ef |grep java| grep weblogic | grep -v "grep"|awk '{print $2}'|xargs kill -9
else
echo "no exsits"
fi
# :
cd ${WLSHOME1}/server/bin && source setWLSEnv.sh
cd ${PUTIL}/cache_dir && PK=$(ls -lt *.jar | head -n 1 | awk '{print $NF}' | awk -F "." '{print $1}')
cd ${PUTIL} && ./bsu.sh -install -patch_download_dir=${PUTIL}/cache_dir -patchlist=${PK} -prod_dir=${WLSHOME1}
# weblogic
nohup sh /home/weblogic/Oracle/Middleware/user_projects/domains/base_domain/bin/startWebLogic.sh &
weblogic12c 자동 패 치 스 크 립 트
#!/bin/bash
#
# :
if [[ -d /tmp/wlspatch ]];then
echo "exsits"
else
mkdir -p /tmp/wlspatch
chown -R weblogic:weblogic /tmp/wlspatch
chmod -R 775 /tmp/wlspatch
fi
#
which wget 2>&1 >/dev/null
if [[ $? -eq 0 ]];then
echo esixt;
else
yum install wget -y
fi
which unzip 2>&1 >/dev/null
if [[ $? -eq 0 ]];then
echo esixt;
else
yum install unzip -y
fi
cd /tmp/wlspatch && wget ftp://10.10.10.10/tmp/${PKG_PATCH}
#
unzip /tmp/wlspatch/*.zip -d /tmp/wlspatch
chown -R weblogic:weblogic /tmp/wlspatch
chmod -R 775 /tmp/wlspatch
# weblogic
# weblogic
#
PKG_NAME=$(cd /tmp/wlspatch && ls | grep -Ev '*.zip')
cd /tmp/wlspatch/${PKG_NAME} && ${PUTIL}/opatch apply -silent
# /tmp/wlspatch
mv /tmp/wlspatch /tmp/wlspatch_$(date +%s)
# weblogic
cd /home/weblogic && ./restart.sh
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.