weblogic 자동화 패 치 스 크 립 트

15339 단어
목적.
weblogic 는 매 분기 psu 업데이트 가 있 고 패 치 작업 도 매 분기 마다 해 야 할 일이 되 었 습 니 다. 우 리 는 xshell 등 도 구 를 통 해 한 대의 정지 서비스 패 치 를 통 해 서 비 스 를 시작 합 니 다.단일 컴퓨터 에 배 치 된 weblogic 이 고 수량 이 많 지 않 으 면 다행 입 니 다. 수 동 로그 인 시스템 을 통 해 세트 로 싸 웁 니 다.그렇다면 클 러 스 터 환경 이 고 클 러 스 터 가 여러 대의 weblogic 서버 로 구성 되 어 있다 면 수 동 패 치 방식 은 매우 비효 율 적 이 며 자동화 패 치 방안 이 필요 하 다.
환경 준비
nginx 서버 구축: weblogic 패 치 패키지 (패 치 패 치 를 저장 할 수 있 는 다른 서버 도 가능 합 니 다) weblogic 10.3.6 과 weblogic 12c 환경 각각 세트 (10.3.6 과 12c 두 버 전 패 치 방식 이 다 릅 니 다) 모든 스 크 립 트 는 weblogic 사용자 로 실행 해 야 합 니 다.
weblogic 10.3.6 자동 패 치 스 크 립 트
  • 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
    
  • 상기 스 크 립 트 를 참고 하여 weblogic12c 패 치 를 마 운 트 해제 하 는 스 크 립 트
  • 를 다시 쓸 수 있 습 니 다.

    좋은 웹페이지 즐겨찾기