【运维自动化篇】-Linux 自动化增量与全量升级tomcat

Tomcat版本升级

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



前言

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

一、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 "\033[32m $Tomcat_user 用户已经存在 \033[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 "\033[32m $Tomcat_user 用户创建成功 \033[0m"
fi

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

        echo -e "\033[32m 全量备份$Tomcat_name \033[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 "\033[33m 备份文件与原文件大小一致,备份成功 \033[0m"
else
        echo -e "\033[33m 备份文件与原文件大小不一致,备份失败 \033[0m"
fi
}

update(){
echo -e "\033[32m 替换Tomcat的lib文件 \033[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 "\033[32m 正在重启Tomcat服务 \033[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 "\033[32m 正在停止Tomcat服务 \033[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 "\033[32m $Tomcat_user 用户已经存在 \033[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 "\033[32m $Tomcat_user 用户创建成功 \033[0m"
fi

backup(){
if [ -d "$backup_dir" ];then
        echo -e "\033[32m 全量备份$Tomcat_name \033[0m"
        cp -r $Tomcat_dir/$Tomcat_name $backup_dir
else
        echo -e "\033[32m 创建备份目录$backup_dir \033[0m"
        mkdir -p $backup_dir
cp -r $Tomcat_dir/$Tomcat_name-$(date +"%Y-%m-%d")/webapps $Tomcat_dir/$Tomcat_name
        echo -e "\033[32m 全量备份$Tomcat_name \033[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 "\033[33m 备份文件与原文件大小一致,备份成功 \033[0m"
else
        echo -e "\033[33m 备份文件与原文件大小不一致,备份失败 \033[0m"
fi
}
update(){
echo -e "\033[32m 全量替换tomcat版本升级 \033[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 "\033[32m 正在重启Tomcat服务 \033[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 "\033[32m 正在停止Tomcat服务 \033[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较多的时候,使用自动化脚本的优势就能体现出来了。

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

咫尺&天涯

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值