客戶要求每周weblogic重啟,每台機器上有多個weblogic實例,開始准備單個服務器實例做成sysv風格的腳本,但是實例較多,於是在滿足需求和自動化重啟的情況下,多個服務器實例的重啟放在了一起,bash腳本實現:
#!/bin/bash #Auther:jjw #Version:0.7 #date:2017-05-05 #weblogic重啟腳本 DIR="$(cd $(dirname $0) && pwd)" #log name log="${DIR}/$0_log" #日志記錄函數 function log(){ echo "`date` $1" | tee -a ${log} } if [ `whoami`x != "weblogic"x ]; then log "請切換到weblogic用戶執行腳本" exit 1 fi if [ ! -s ${DIR}/admin.conf ]; then log "請檢查admin.conf文件是否配置" exit 1 fi source ${DIR}/admin.conf while read server do let FLAG=0 #停止服務 log "開始停止服務${server}..." && ${DOMAIN_BIN}/stopManagedWebLogic.sh ${server} ${ADMIN_URL} ${W_USER} ${W_PWD} && log "${server}服務已停止." || let FLAG=1 if [ ${FLAG} -eq 1 ]; then log "停止${server}服務失敗,請控制台強制停止..." while true do if [ `ps -ef | grep "${server}" | grep -v "grep" | wc -l` -eq 0 ]; then log "${server}服務已停止." let FLAG=0 break fi done fi log "開始啟動服務${server}..." && cd ${DOAMIN_HOME} && nohup ./startManagedWebLogic${server}.sh > ${server}.out & let SLEEP_TIME=0 while true do sleep 10s if [ `cat ${DOAMIN_HOME}/${server}.out | grep "Server started in RUNNING mode" | grep -v grep | wc -l` -eq 1 ]; then log "${server}重啟成功." break fi let SLEEP_TIME+=10 if [ ${SLEEP_TIME} -gt ${TIMEOUT} ]; then log "${server}服務重啟超時,請檢查后手動處理." break fi done done < ${DIR}/server.conf exit $?
admin.conf需根據實際的情況改寫
#administator賬戶信息 W_USER="weblogic" W_PWD="weblogic" #受管服務器所在域目錄 DOAMIN_HOME="/u01/Middleware/domains/base_domain" #administator監聽地址 ADMIN_URL="t3://localhost:7001" #服務器相關腳本所在目錄 DOMAIN_BIN="${DOAMIN_HOME}/bin" #單台服務器啟動腳本目錄(自己編寫,啟動時加各種參數) START_SCRIPT="${DOAMIN_HOME}" #服務器啟動超時時間 TIMEOUT=180
server.conf
server01 server02 server03
startManagedWebLogic${server}.sh
#!/bin/sh # **************************************************************************** # This script is used to start a managed WebLogic Server for the domain in the # current working directory. This script reads in the SERVER_NAME and # ADMIN_URL as positional parameters, sets the SERVER_NAME variable, then # starts the server. # # Other variables that startWLS takes are: # # WLS_USER - cleartext user for server startup # WLS_PW - cleartext password for server startup # PRODUCTION_MODE - Set to true for production mode servers, false for # development mode # JAVA_OPTIONS - Java command-line options for running the server. (These # will be tagged on to the end of the JAVA_VM and MEM_ARGS) # JAVA_VM - The java arg specifying the VM to run. (i.e. -server, # -hotspot, etc.) # MEM_ARGS - The variable to override the standard memory arguments # passed to java # # For additional information, refer to the WebLogic Server Administration Guide # (/ConsoleHelp/startstop.html). # ****************************************************************************