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

目录
相关文章
|
1天前
|
运维 监控 Linux
自动化运维:如何利用Python脚本优化日常任务##
【10月更文挑战第29天】在现代IT运维中,自动化已成为提升效率、减少人为错误的关键技术。本文将介绍如何通过Python脚本来简化和自动化日常的运维任务,从而让运维人员能够专注于更高层次的工作。从备份管理到系统监控,再到日志分析,我们将一步步展示如何编写实用的Python脚本来处理这些任务。 ##
|
2天前
|
Ubuntu Linux Shell
Linux 系统中的代码类型或脚本类型内容
在 Linux 系统中,代码类型多样,包括 Shell 脚本、配置文件、网络配置、命令行工具和 Cron 定时任务。这些代码类型广泛应用于系统管理、自动化操作、网络配置和定期任务,掌握它们能显著提高系统管理和开发的效率。
|
5天前
|
运维 Prometheus 监控
自动化运维之路:从脚本到DevOps
【10月更文挑战第25天】在数字化时代的浪潮中,运维不再是简单的服务器管理,而是成为了企业竞争力的核心。本文将带你走进自动化运维的世界,探索如何通过技术手段提升效率和稳定性,以及实现快速响应市场的能力。我们将一起学习如何从基础的脚本编写进化到全面的DevOps实践,包括工具的选择、流程的优化以及文化的建设。无论你是运维新手还是资深专家,这篇文章都将为你提供有价值的见解和实用的技巧。
10 3
|
6天前
|
运维 监控 Shell
深入理解Linux系统下的Shell脚本编程
【10月更文挑战第24天】本文将深入浅出地介绍Linux系统中Shell脚本的基础知识和实用技巧,帮助读者从零开始学习编写Shell脚本。通过本文的学习,你将能够掌握Shell脚本的基本语法、变量使用、流程控制以及函数定义等核心概念,并学会如何将这些知识应用于实际问题解决中。文章还将展示几个实用的Shell脚本例子,以加深对知识点的理解和应用。无论你是运维人员还是软件开发者,这篇文章都将为你提供强大的Linux自动化工具。
|
7天前
|
JSON 测试技术 持续交付
自动化测试与脚本编写:Python实践指南
自动化测试与脚本编写:Python实践指南
12 1
|
12天前
|
运维 监控 jenkins
运维自动化实战:利用Jenkins构建高效CI/CD流程
【10月更文挑战第18天】运维自动化实战:利用Jenkins构建高效CI/CD流程
|
23天前
|
人工智能 运维 Devops
自动化运维之路:从脚本到DevOps的转变
【10月更文挑战第7天】在这篇文章中,我们将一起探索自动化运维的演变历程,从最初的简单脚本到现代的DevOps实践。我们将深入理解自动化如何改变了运维工作的本质,并讨论实现这一转变的关键技术和策略。文章将不包含代码示例,而是聚焦于理念、工具和方法论的介绍,旨在为读者提供一个全面的自动化运维框架视图。
|
21天前
|
运维 Java Linux
【运维基础知识】Linux服务器下手写启停Java程序脚本start.sh stop.sh及详细说明
### 启动Java程序脚本 `start.sh` 此脚本用于启动一个Java程序,设置JVM字符集为GBK,最大堆内存为3000M,并将程序的日志输出到`output.log`文件中,同时在后台运行。 ### 停止Java程序脚本 `stop.sh` 此脚本用于停止指定名称的服务(如`QuoteServer`),通过查找并终止该服务的Java进程,输出操作结果以确认是否成功。
28 1
|
22天前
|
人工智能 运维 监控
自动化运维:从脚本到工具的演变之路
【10月更文挑战第8天】在数字化时代的浪潮中,运维不再是简单的硬件维护,它已经演变成一场关于效率、稳定性和创新的技术革命。本文将带您领略自动化运维的魅力,从最初的脚本编写到现代复杂的自动化工具,我们将一探究竟,看看这些工具如何帮助运维人员简化日常任务,提升工作效率,并最终推动业务发展。
|
23天前
|
运维 jenkins 持续交付
自动化部署的魅力:如何用Jenkins和Docker简化运维工作
【10月更文挑战第7天】在现代软件开发周期中,快速且高效的部署是至关重要的。本文将引导你理解如何使用Jenkins和Docker实现自动化部署,从而简化运维流程。我们将从基础概念开始,逐步深入到实战操作,让你轻松掌握这一强大的工具组合。通过这篇文章,你将学会如何利用这些工具来提升你的工作效率,并减少人为错误的可能性。