转至: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进行补丁升级的更多相关文章

  1. 在Linux下的中断方式读取按键驱动程序

    // 在Linux下的中断方式读取按键驱动程序 //包含外部中断 休眠 加入poll机制 // 采用异步通知的方式 // 驱动程序发 ---> app接收 (通过kill_fasync()发送) ...

  2. linux下shell脚本执行jar文件

    最近在搞一个shell脚本启动jar文件个关闭jar文件的东东.搞得我都蛋疼了.今天晚上终于弄好了 话说,小弟的linux只是刚入门,经过各方查资料终于搞定了.话不多说,下面开始上小弟写的shell脚 ...

  3. Linux 下 expect 脚本语言中交互处理常用命令

    Linux 下 expect 脚本语言中交互处理常用命令 1. #!/usr/bin/expect 告诉操作系统脚本里的代码使用那一个 shell 来执行.这里的 expect 其实和 Linux 下 ...

  4. Django项目部署在Linux下以进程方式启动

    Django项目部署在Linux下以进程方式启动 这是一篇关于如何在linux下,以后台进程的方式运行服务,命令改改基本上就通用了. 开发完Django项目后,需要把项目部署到linux环境下.当然, ...

  5. Linux执行shell脚本方式及区别&命令后台运行

    Linux执行shell脚本方式及区别&命令后台运行 http://blog.csdn.net/heqiyu34/article/details/19089951/

  6. [转] Linux下编写脚本实现Daemon

    在Linux(以Redhat Linux Enterprise Edition 5.3为例)下,有时需要编写Service.Service也是程序,一般随系统启动用户不干预就不退出的程序,可以称为Se ...

  7. Linux下通用二进制方式安装MySQL

    1.下载glibc版本的MySQL: https://downloads.mysql.com/archives/community/ 2.查看mysql用户和mysql组是否存在(用户和组的信息存在/ ...

  8. Linux下通过脚本自动备份Oracle数据库并删除指定天数前的备份

    说明: Oracle数据库服务器操作系统:CentOSIP:192.168.0.198端口:1521SID:orclOracle数据库版本:Oracle11gR2 具体操作: 1.root用户登录服务 ...

  9. linux下通过脚本实现自动重启程序的方法

    无论什么程序都不可能完美无缺,理论上,任何程序都有 Core Dump 的一天,正式运营的程序,尤其是服务器程序,一旦 Core Dump ,后果不堪设想,有过服务器开发经验的朋友,一定都经历过深夜美 ...

随机推荐

  1. 初步学习TypeScript

    使用Visual Studio Code搭建TypeScript开发环境 1.TypeScript是干什么的 ? TypeScript是由微软Anders Hejlsberg(安德斯·海尔斯伯格,也是 ...

  2. kubernetes之配置Metrics Server

    Kubernetes 1.8 关于资源使用情况的 metrics,可以通过 Metrics API 获取到, Kubernetes 1.11 已经废弃 heapster.这里我们基于 Kubernet ...

  3. SpringBoot+Minio搭建不再爆肝秃头的分布式文件服务器

    前言 1).有人一定会问,为什么不用FastDFS?众所周知,FastDFS的原生安装非常复杂,有过安装经验的人大体都明白,虽然可以利用别人做好的docker直接安装,但真正使用过程中也可能出现许多莫 ...

  4. SuperPoint: Self-Supervised Interest Point Detection and Description 论文笔记

    Introduction 这篇文章设计了一种自监督网络框架,能够同时提取特征点的位置以及描述子.相比于patch-based方法,本文提出的算法能够在原始图像提取到像素级精度的特征点的位置及其描述子. ...

  5. UCB DS100 讲义《数据科学的原理与技巧》校对活动正式启动 | ApacheCN

    贡献指南:https://github.com/apachecn/ds100-textbook-zh/blob/master/CONTRIBUTING.md 整体进度:https://github.c ...

  6. 关于将px转换为vw vh的解决方案

    什么是vw(Viewport Width)和vh(Viewport Height)? vw和vh是前端开发中的一个动态单位,是一个相对于网页视口的单位. 系统会将视口的宽度和高度分为100份,1vw占 ...

  7. AT [ABC176F] Brave CHAIN

    首先可以发现这样一个事实:在每次操作当中,都有三张牌是已经固定的,只有两张牌是不确定的,于是我们可以发下每一次操作的状态可以简单的使用这两张牌来描述,于是可以考虑令 \(dp_{i, j, k}\) ...

  8. Java中的增强型for循环

    下面是关于增强型for循环对一维数组与二维数组遍历的具体实现: public class NewForLoop { public static void main(String[] args) { i ...

  9. JAVA多线程学习五:线程范围内共享变量&ThreadLocal

    一.概念 可以将每个线程用到的数据与对应的线程号存放到一个map集合中,使用数据时从这个集合中根据线程号获取对应线程的数据,就可以实现线程范围内共享相同的变量. 二.代码 Runnable中的run( ...

  10. IDEA:修改JAVA文件自动引入import.*包

    感谢大佬:https://blog.csdn.net/fly910905/article/details/90208744 问题描述 Intellij Idea工具在java文件中,经常会自动导入im ...