linux下通过脚本方式对中间件weblogic进行补丁升级
转至:http://bbs.learnfuture.com/topic/48
linux下通过脚本方式对中间件weblogic进行补丁升级
刘五奎
【摘要】
在运维行业,系统或软件漏洞每每牵动着每一个管理员的神经,每次漏洞发布都将是一次漏洞修复的苦战。其中中间件漏洞也是管理员经常遇到的问题,而且往往越是大的企业中间件服务器数量越多,如果按照传统的手工方式,那么将是一个很大的工作量。那么有么有办法可以对这些中间件weblogic服务器进行批量自动化升级呢?答案是有,下面将介绍如果通过脚本方式实现weblogic自动补丁升级。
【正文】
众所周知,weblogic中间件主要有11g和12c两个大的版本,这两个版本在补丁安装方式上做了很大调整,因此,针对不同的版本需要对应的脚本。
首先,需要到weblogic官网下载相应的补丁包,参考网址:
http://www.oracle.com/technetwork/java/javase/archive-139210.html。然后将补丁包上传到服务器上,存放路径可自行定义,如/home/weblogic/。此步骤可通过蓝鲸平台批量上传。做好以上准备工作之后,就可以进入到脚本执行阶段,脚本将分weblogic11g和weblogic12c两个版本进行详细说明。
一、Weblogic11g补丁更新脚本及说明
#---------------------------------weblogic11g补丁更新脚本----------------------------------
#!/bin/bash
echo "<=========weblogic_patch_update=============>"
#说明1:需要在停止weblogic服务收集weblogic目录信息,脚本第一次执行时回复“yes”
read -p "Restore the ORACLE_HOME dir before service is down(yes/no) " var
if [ "${var}"x == "yes"x ]; then
ps aux |grep java | grep -e -Dplatform.home=|awk 'NR==1{for(i=1;i<=NF;i++) print $i}' | grep -e -Dplatform.home|cut -d = -f 2 > /tmp/prod_home.log
echo "PROD_HOME=`cat /tmp/prod_home.log`"
exit 0
fi
PROD_HOME=`cat /tmp/prod_home.log`
if [ ! -d "${PROD_HOME}" ]; then
echo "PROD_HOME does not exist"
exit 1
fi
BEA_HOME=`echo ${PROD_HOME%/*}`
echo "BEA_HOME=$BEA_HOME"
cd $BEA_HOME/utils/bsu || exit 1
#说明2:读取weblogic已安装补丁信息
./bsu.sh -prod_dir=$PROD_HOME -status=applied -verbose -view
echo "<=======remove old patch=======>"
#说明3:weblogic11g安装新补丁前需要首先卸载旧补丁,需要手动填写补丁信息,后续可完善
./bsu.sh -remove -patchlist=FMJJ -prod_dir=$PROD_HOME -verbose
if [ 0 -eq `echo $?` ]; then
echo "patches removed successfully"
else
echo "An error occured while removing patches"
exit 1
fi
#说明4:查看内存信息,内存分配不当将影响补丁安装能够成功和安装速度
cat bsu.sh |grep '^MEM_ARGS'
cd cache_dir/
rm -rf *
mv /home/weblogic/p27395085_1036_Generic.zip ./
unzip p27395085_1036_Generic.zip
PATCH_DIR=`pwd`
cd ..
echo "<=========patch install========>"
./bsu.sh -install -patch_download_dir=$PATCH_DIR -patchlist=GFWX -prod_dir=$PROD_HOME -verbose
if [ 0 -eq $? ]; then
echo "patches updated successfully"
else
echo "something is wrong"
exit 1
fi
#查看安装完成后补丁状态
./bsu.sh -prod_dir=$PROD_HOME -status=applied -verbose -view
二、Weblogic12c补丁更新脚本及说明
weblogic12c补丁更新安装方式与11g有很大的不同,可以说简省了许多,最重要的是不再需要手动卸载旧补丁便能完成补丁更新操作,这也为weblogic补丁更新工作提供了很大的便利。
#---------------------------------weblogic11g补丁更新脚本---------------------------------
#!/bin/bash
echo "<========Weblogic_Patch_Update==============>"
#说明1:同样需要在停止weblogic服务前收集weblogic目录信息,首次执行脚本回复“yes”
read -p "Restore the ORACLE_HOME dir before service is down(yes/no) " var
if [ "${var}"x == "yes"x ]; then
ps aux |grep java | grep -e -Dwls.home=|awk 'NR==1{for(i=1;i<=NF;i++) print $i}' | grep -e -Dwls.home|cut -d = -f 2 > /tmp/wls_home.log
exit 0
fi
WLS_HOME=`cat /tmp/wls_home.log`
if [ ! -d "$WLS_HOME" ]; then
echo "WLS_HOME does not exist"
exit 1
fi
ORACLE_HOME=`echo ${WLS_HOME%/*/*}`
echo "<==========Old Patch Messages=======>"
#说明2:读取旧版本补丁信息
$ORACLE_HOME/OPatch/opatch lsinventory -jdk $JAVA_HOME
unzip -n p27419391_121300_Generic.zip
echo $HOME
cd $HOME/27419391/
$ORACLE_HOME/OPatch/opatch apply -jdk $JAVA_HOME
rm -rf /tmp/wls_home.log
以上便是中间件weblogic各主要版本的补丁升级自动化脚本内容,脚本让运维工作变得更轻松。
---------------------
原文来自【学领未来】,转载时请保留原文链接。
链接:http://bbs.learnfuture.com/topic/48
linux下通过脚本方式对中间件weblogic进行补丁升级的更多相关文章
- 在Linux下的中断方式读取按键驱动程序
// 在Linux下的中断方式读取按键驱动程序 //包含外部中断 休眠 加入poll机制 // 采用异步通知的方式 // 驱动程序发 ---> app接收 (通过kill_fasync()发送) ...
- linux下shell脚本执行jar文件
最近在搞一个shell脚本启动jar文件个关闭jar文件的东东.搞得我都蛋疼了.今天晚上终于弄好了 话说,小弟的linux只是刚入门,经过各方查资料终于搞定了.话不多说,下面开始上小弟写的shell脚 ...
- Linux 下 expect 脚本语言中交互处理常用命令
Linux 下 expect 脚本语言中交互处理常用命令 1. #!/usr/bin/expect 告诉操作系统脚本里的代码使用那一个 shell 来执行.这里的 expect 其实和 Linux 下 ...
- Django项目部署在Linux下以进程方式启动
Django项目部署在Linux下以进程方式启动 这是一篇关于如何在linux下,以后台进程的方式运行服务,命令改改基本上就通用了. 开发完Django项目后,需要把项目部署到linux环境下.当然, ...
- Linux执行shell脚本方式及区别&命令后台运行
Linux执行shell脚本方式及区别&命令后台运行 http://blog.csdn.net/heqiyu34/article/details/19089951/
- [转] Linux下编写脚本实现Daemon
在Linux(以Redhat Linux Enterprise Edition 5.3为例)下,有时需要编写Service.Service也是程序,一般随系统启动用户不干预就不退出的程序,可以称为Se ...
- Linux下通用二进制方式安装MySQL
1.下载glibc版本的MySQL: https://downloads.mysql.com/archives/community/ 2.查看mysql用户和mysql组是否存在(用户和组的信息存在/ ...
- Linux下通过脚本自动备份Oracle数据库并删除指定天数前的备份
说明: Oracle数据库服务器操作系统:CentOSIP:192.168.0.198端口:1521SID:orclOracle数据库版本:Oracle11gR2 具体操作: 1.root用户登录服务 ...
- linux下通过脚本实现自动重启程序的方法
无论什么程序都不可能完美无缺,理论上,任何程序都有 Core Dump 的一天,正式运营的程序,尤其是服务器程序,一旦 Core Dump ,后果不堪设想,有过服务器开发经验的朋友,一定都经历过深夜美 ...
随机推荐
- AOP-底层原理
AOP(底层原理) 1,AOP底层使用动态代理 (1)有两种情况动态代理 第一种 有接口情况,使用JDK动态代理 *创建接口实现类代理对象,增强类的方法 第二种 无接口情况,使用CGLIB动态代理 * ...
- Shell 脚本进阶,经典用法及其案例
一.条件选择.判断 1.条件选择if (1)用法格式 if 判断条件 1 ; then 条件为真的分支代码 elif 判断条件 2 ; then 条件为真的分支代码 elif 判断条件 3 ; the ...
- python变量系列--1
所以这里需要注意变量的使用,print(message),直接去引用,和shell略有不同 1.变量名只能包含字母,数字,下划线,但不能以数字开头 2.变量名不能含有空格
- Spring系列8:bean的作用域
本文内容 bean定义信息的意义 介绍6种bean的作用域 bean定义信息的意义 Spring中区分下类.类定义信息,类实例对象的概念?不容易理解,以餐馆中点炒饭为例. 类: 相当于你看到菜单上炒饭 ...
- MySQL专题1: 字段和索引
合集目录 MySQL专题1: 字段和索引 Float.Decimal 存储金额的区别? MySQL中存在 float, double 等非标准数据类型, 也有 decimal 这种标准数据类型 其区别 ...
- 基于Python的某大学某学院新生高考成绩分析
# coding=gbk import pandas as pd import numpy as np import matplotlib.pyplot as plt from pylab impor ...
- CNN-卷积神经网络简单入门(2)
在上篇中,对卷积神经网络的卷积层以及池化层模块进行了简单的介绍,接下来将对卷积神经网络的整个运作流程进行分析,以便对CNN有个总体上的认知和掌握. 如下图,卷积神经网络要完成对图片数字的识别任务.网络 ...
- ApacheCN 深度学习译文集 20210112 更新
新增了六个教程: TensorFlow 2 和 Keras 高级深度学习 零.前言 一.使用 Keras 入门高级深度学习 二.深度神经网络 三.自编码器 四.生成对抗网络(GAN) 五.改进的 GA ...
- AGC008 部分简要题解
F 不妨前考虑 \(70 \%\) 的部分分,\(s\) 全部为 \(1\). 首先可以发现这个问题之所以困难是因为同一个联通子树可能可以被多个中心节点导出. 因此,我们考虑对于一个合法的联通子树,在 ...
- html重点标签总结
一. iframe 的学习 iframe通俗的的理解就是,可以在页面里面嵌套新的页面 它的使用会使页面变卡,一般会有一个固定的尺寸,默认的.他也属于可替换元素行列.我们可以通过CSS来改变尺寸 fra ...