linux 自动化部署jenkins war包的 脚本(deploy)

简介: 自动拉取war包,自动解压,自动删除日志,自动重启tomcat,dubbo程序,备份项目,自动替换配置文件 用法: deploy | deploy start | deploy stop | deploy restart| deploy cle...

自动拉取war包,自动解压,自动删除日志,自动重启tomcat,dubbo程序,备份项目,自动替换配置文件

用法: deploy | deploy start | deploy stop | deploy restart| deploy clear| deploy status 


*需要自己修改相关路径

文件名 deploy :


env="dev"
module=""
project="esb"
tomcat="tomcat-esb-6060"

dubbo="dubbo"

base="http://192.168.1.1:9090/jenkins/job"
clear()
{
rm -rf rm -rf $dubbo/*/logs/*
rm -rf $tomcat/logs/*
rm -rf *.log
rm -rf *.war
rm -rf *assembly.tar.gz
}
stop()
{
module="esb-consumer"
#ps -ef | grep $env/esb/dubbo/$module | grep -v grep
pid=`ps -ef | grep $env/$project/dubbo/$module | grep -v grep |awk 'NR==1{print $2}'`
if [ -n "$pid" ];then
     echo "停止$env $module..."
     kill -9 $pid
     sleep 1s
fi

module="esb-facade"
#ps -ef | grep $env/$project/dubbo/$module | grep -v grep
pid=`ps -ef | grep $env/$project/dubbo/$module | grep -v grep |awk 'NR==1{print $2}'`
if [ -n "$pid" ];then
     echo "停止$env $module..."
     kill -9 $pid
     sleep 1s
fi

#ps -ef | grep $env/$project/$tomcat | grep -v grep
pid=`ps -ef | grep $env/$project/$tomcat | grep -v grep |awk 'NR==1{print $2}'`
if [ -n "$pid" ];then
echo "停止$env $tomcat"
kill -9 $pid
sleep 1s
fi
}


start()
{
  module="esb-facade"
  echo "启动$env $module..."
  sh $dubbo/$module/bin/start.sh
  sleep 2s
  module="esb-consumer"
  echo "启动$env $module..."
  sh $dubbo/$module/bin/start.sh

  echo "启动$env $tomcat"
  sh $tomcat/bin/startup.sh

}
deploy_dubbo()
{
rm -rf bak/$module
cp -r $dubbo/$module bak
rm -rf $dubbo/$module
rm -rf $module-assembly.tar.gz
wget -qc "$base/$project/ws/$module/target/$module-assembly.tar.gz"
echo "正在解压$env $module-assembly.tar.gz"
tar -zxvf $module-assembly.tar.gz -C $dubbo  >/dev/null 2>&1
echo "替换配置$env $module"
cp -r configbak/$module/* $dubbo/$module/conf
}
deploy_tomcat()
{
rm -rf bak/$module
cp -r $tomcat/webapps/$module bak
rm -rf $tomcat/webapps/$module
rm -rf $module.war
wget -qc "$base/$project/ws/$module/target/$module.war"
echo "正在解压$env $module"
unzip $module.war -d $tomcat/webapps/$module  >/dev/null 2>&1
echo "替换配置$env $module"
cp -r configbak/$module/* $tomcat/webapps/$module/WEB-INF/classes
}

deploy()
{
stop
clear


module="esb-consumer"
deploy_dubbo
module="esb-facade"
deploy_dubbo
module="esb-scheduler"
deploy_tomcat
module="esb-api"
deploy_tomcat
module="esb-web"
deploy_tomcat

start
}


if [ "$1" = "start" ];then
    start
elif [ "$1" = "stop" ];then
    stop
elif [ "$1" = "clear" ];then
    clear
elif [ "$1" = "restart" ];then
    stop
    start
elif [ "$1" = "status" ];then
    ps -ef | grep $env/$project/$dubbo | grep -v grep
    ps -ef | grep $env/$project/$tomcat | grep -v grep
elif [ -z "$1" ];then
    deploy
else
    echo "用法: deploy | deploy start | deploy stop | deploy restart| deploy clear";
    exit 1;
fi

目录
相关文章
|
2天前
|
Java Linux 开发工具
linux如何编译安装源码包软件
源码包软件是包含源代码的软件包,常见于Linux和BSD系统,如fcitx和Lumaqq。开源软件需满足源代码可见且有宽松许可,如GPL。安装源码包通常涉及解压、编译和安装步骤,使用`tar`命令解包,通过`./configure`, `make`, `make install`进行编译安装。软件源码允许定制和二次开发,但须遵循许可协议。安装前确保安装了必要的开发工具和库。对于perl和python程序,直接使用perl或python命令安装。推荐使用系统软件包管理工具如RPM、yum或apt进行管理,以简化流程。
24 0
|
2天前
|
Linux Shell C语言
Linux:自动化构建 - make
Linux:自动化构建 - make
13 1
|
2天前
|
前端开发 Java Linux
宝塔Linux:部署His医疗项目通过jar包的方式
宝塔Linux:部署His医疗项目通过jar包的方式
|
2天前
|
数据可视化 小程序 Linux
【Linux】自动化构建工具make/Makefile和git介绍
【Linux】自动化构建工具make/Makefile和git介绍
16 0
|
2天前
|
Linux
Linux课程四课---Linux开发环境的使用(自动化构建工具-make/Makefile的相关)
Linux课程四课---Linux开发环境的使用(自动化构建工具-make/Makefile的相关)
|
2天前
|
监控 前端开发 jenkins
Jenkins在前端项目持续部署中的应用,介绍了Jenkins作为自动化部署工具的基本概念和流程
【4月更文挑战第29天】本文探讨了Jenkins在前端项目持续部署中的应用,介绍了Jenkins作为自动化部署工具的基本概念和流程。前端持续部署涉及代码提交、构建、测试和部署四个步骤。实现过程中需配置代码仓库、构建、测试和部署任务,安装相关插件并确保环境一致性。注意事项包括代码质量控制、环境一致性、监控预警和安全管理。通过Jenkins,可提升前端开发效率和质量,但需不断学习以应对技术发展。
|
2天前
|
Ubuntu Linux
自动化解决Linux网络预测网络接口命名问题
自动化解决Linux网络预测网络接口命名问题
20 0
|
2天前
|
存储 Ubuntu Linux
Linux 自动化处理命令 Expect 使用教程
Linux 自动化处理命令 Expect 使用教程
39 0
|
2天前
|
Linux 数据安全/隐私保护
自动化脚本之加密内容解密适用于Linux
自动化脚本之加密内容解密适用于Linux
17 1
|
2天前
|
Linux Shell Android开发
自动化脚本之GPIO/LED相关适用于Android/Linux
自动化脚本之GPIO/LED相关适用于Android/Linux
15 0