栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

tomcat自动化增量升级与全量升级

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

tomcat自动化增量升级与全量升级

Tomcat版本升级

提示:在做项目维护的时候,避免不了会曝出一些漏洞问题,那么就需要对版本进行升级到更高的版本
例如:tomcat作为开源中间件,每段时间就可能曝出漏洞,就需要进行升级维护


文章目录
  • Tomcat版本升级
  • 前言
  • 一、Tomcat的增量升级
    • 1.升级方法
    • 2.自动化脚本实现
  • 二、Tomcat的全量升级
    • 1.升级方法
    • 2.自动化脚本实现
  • 总结


前言

提示:本文主要想记录下自己在做维护时的一些小小功能的实现

一、Tomcat的增量升级 1.升级方法

介绍:tomcat的增量升级,是存在于部分生产环境中,已经在正式使用了,可能对tomcat的配置做了定制,那么此时就不能做全量的升级,就需要做增量升级,方法就是对tomcat的lib目录下的jar文件进行升级,当然我们操作前的步骤一定是备份-备份-备份,重要的事情说三遍。

2.自动化脚本实现

代码如下(示例):

#!/bin/bash

#需要升级的tomcat名称
Tomcat_name=tomcat_mod_v8.5.70
#tomcat所在的上级目录
Tomcat_dir=/app/tomcat
#tomcat的属组
Tomcat_user=root
Tomcat_group=root
#toamct备份目录
Backup_dir=/app/backup

backup_dir=$Backup_dir/backup-$(date +"%Y-%m-%d-%H-%M-%S")

if id -u $Tomcat_user >/dev/null 2>&1; then
        echo -e "33[32m $Tomcat_user 用户已经存在 33[0m"
else
        egrep "^$Tomcat_group" /etc/group >& /dev/null
        if [ $? -ne 0 ]
        then
        groupadd $Tomcat_group
        fi
        useradd -g $Tomcat_group $Tomcat_user
        echo -e "33[32m $Tomcat_user 用户创建成功 33[0m"
fi

backup(){
if [ -d "$backup_dir" ];then
        echo -e "33[32m 全量备份$Tomcat_name 33[0m"
        cp -r $Tomcat_dir/$Tomcat_name $backup_dir
else
        echo -e "33[32m 创建备份目录$backup_dir 33[0m"
        mkdir -p $backup_dir

        echo -e "33[32m 全量备份$Tomcat_name 33[0m"
        cp -r $Tomcat_dir/$Tomcat_name $backup_dir
fi

file1=$backup_dir/$Tomcat_name
file2=$Tomcat_dir/$Tomcat_name

back_num=`du -sh $file1 |awk '{print $1}'`
pro_num=`du -sh $file2 |awk '{print $1}'`
if [ $back_num == $pro_num ];then
        echo -e "33[33m 备份文件与原文件大小一致,备份成功 33[0m"
else
        echo -e "33[33m 备份文件与原文件大小不一致,备份失败 33[0m"
fi
}

update(){
echo -e "33[32m 替换Tomcat的lib文件 33[0m"
mv $Tomcat_dir/$Tomcat_name/lib $Tomcat_dir/$Tomcat_name/lib-$(date +"%Y-%m-%d")
tar xvf update_lib_8.5.81.tar.gz -C $Tomcat_dir/$Tomcat_name >>/dev/null
chown -R $Tomcat_user:$Tomcat_group $Tomcat_dir/$Tomcat_name/lib
}

start_tom(){
echo -e "33[32m 正在重启Tomcat服务 33[0m"
if [ $Tomcat_user == "root" ];then
        chown -R $Tomcat_user:$Tomcat_group $Tomcat_dir/$Tomcat_name
        sh $Tomcat_dir/$Tomcat_name/bin/startup.sh
else
        chown -R $Tomcat_user:$Tomcat_group $Tomcat_dir/$Tomcat_name
        su - $Tomcat_user -c "sh $Tomcat_dir/$Tomcat_name/bin/startup.sh"
fi
}

stop_tom(){
echo -e "33[32m 正在停止Tomcat服务 33[0m"
if [ $Tomcat_user == "root" ];then
        sh $Tomcat_dir/$Tomcat_name/bin/shutdown.sh
        chown -R $Tomcat_user:$Tomcat_group $Tomcat_dir/$Tomcat_name
else
        su - $Tomcat_user -c "sh $Tomcat_dir/$Tomcat_name/bin/shutdown.sh"
        chown -R $Tomcat_user:$Tomcat_group $Tomcat_dir/$Tomcat_name
fi
}
stop_tom
backup
update
start_tom
二、Tomcat的全量升级 1.升级方法

介绍:tomcat的全量升级,是指在对于tomcat的本身并没有过多的改造,可以通过全量升级,适用于大版本升级,当然我们操作前的步骤一定是备份-备份-备份,重要的事情说三遍。

2.自动化脚本实现

代码如下(示例):

#!/bin/bash
Tomcat_name=tomcat_mod_v8.5.70
#tomcat所在的上级目录
Tomcat_dir=/app/tomcat
#tomcat的属组
Tomcat_user=root
Tomcat_group=root
#toamct备份目录
Backup_dir=/app/backup
#tomact的所用端口(全量升级时使用)
Tomcat_port=8888
backup_dir=$Backup_dir/backup-$(date +"%Y-%m-%d-%H-%M-%S")

if id -u $Tomcat_user >/dev/null 2>&1; then
        echo -e "33[32m $Tomcat_user 用户已经存在 33[0m"
else
        egrep "^$Tomcat_group" /etc/group >& /dev/null
        if [ $? -ne 0 ]
        then
        groupadd $Tomcat_group
        fi
        useradd -g $Tomcat_group $Tomcat_user
        echo -e "33[32m $Tomcat_user 用户创建成功 33[0m"
fi

backup(){
if [ -d "$backup_dir" ];then
        echo -e "33[32m 全量备份$Tomcat_name 33[0m"
        cp -r $Tomcat_dir/$Tomcat_name $backup_dir
else
        echo -e "33[32m 创建备份目录$backup_dir 33[0m"
        mkdir -p $backup_dir
cp -r $Tomcat_dir/$Tomcat_name-$(date +"%Y-%m-%d")/webapps $Tomcat_dir/$Tomcat_name
        echo -e "33[32m 全量备份$Tomcat_name 33[0m"
        cp -r $Tomcat_dir/$Tomcat_name $backup_dir
fi

file1=$backup_dir/$Tomcat_name
file2=$Tomcat_dir/$Tomcat_name

back_num=`du -sh $file1 |awk '{print $1}'`
pro_num=`du -sh $file2 |awk '{print $1}'`
if [ $back_num == $pro_num ];then
        echo -e "33[33m 备份文件与原文件大小一致,备份成功 33[0m"
else
        echo -e "33[33m 备份文件与原文件大小不一致,备份失败 33[0m"
fi
}
update(){
echo -e "33[32m 全量替换tomcat版本升级 33[0m"

        mv $Tomcat_dir/$Tomcat_name $Tomcat_dir/$Tomcat_name-$(date +"%Y-%m-%d")
        tar xvf iam_tomcat_v8.5.81.tar.gz -C $Tomcat_dir >>/dev/null
        mv $Tomcat_dir/iam_tomcat_v8.5.81 $Tomcat_dir/$Tomcat_name >>/dev/null
        chown -R $Tomcat_user:$Tomcat_group $Tomcat_dir/$Tomcat_name
        
        sed -i 's|8080|'$Tomcat_port'|g' $Tomcat_dir/$Tomcat_name/conf/server.xml
}

start_tom(){
echo -e "33[32m 正在重启Tomcat服务 33[0m"
if [ $Tomcat_user == "root" ];then
        chown -R $Tomcat_user:$Tomcat_group $Tomcat_dir/$Tomcat_name
        sh $Tomcat_dir/$Tomcat_name/bin/startup.sh
else
        chown -R $Tomcat_user:$Tomcat_group $Tomcat_dir/$Tomcat_name
        su - $Tomcat_user -c "sh $Tomcat_dir/$Tomcat_name/bin/startup.sh"
fi
}
stop_tom(){
echo -e "33[32m 正在停止Tomcat服务 33[0m"
if [ $Tomcat_user == "root" ];then
        sh $Tomcat_dir/$Tomcat_name/bin/shutdown.sh
        chown -R $Tomcat_user:$Tomcat_group $Tomcat_dir/$Tomcat_name
else
        su - $Tomcat_user -c "sh $Tomcat_dir/$Tomcat_name/bin/shutdown.sh"
        chown -R $Tomcat_user:$Tomcat_group $Tomcat_dir/$Tomcat_name
fi
}


stop_tom
backup
update
start_tom



总结

通常对于组件比较少得时候,手动执行升级就可以了,当服务器资源或者中间件tomcat较多的时候,使用自动化脚本的优势就能体现出来了。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/987685.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号