shell脚本自动化部署
由于公司技术部团队较小,没有专门的运维团队,所以运维工作技术部承包了。
一、纯人工部署是这样的:
1. 本地打包:一般 maven clean package
2. 借助xftp上传到服务器对应目录
3. 借助 xshell连接到服务器
4.开始部署:
a、找到程序运行的进程id:ps -ef | grep java
b、杀死进程: kill -9 pid
c、启动新的jar包: java -jar 包名 --spring.profiles.active=test &
二、使用shell脚本自动化部署
1. 脚本
#!/bin/bash
jarName=$1
jarNew=$(find $jarName*jar)
jarHead=$(find $jarName*jar | awk -F '.' '{print $1}')
#echo "jarHead --- ${jarHead}"
echo "本次更新的包名----${jarNew}----"
sleep 3 PID=`ps -aux | grep $jarHead | grep -v grep | grep -v deploy | awk '{print $2}'`
#unset PID
echo " ---旧进程PID:${PID}--"
if [ -n "$PID" ];
then
echo "杀死旧的进程……"
sleep 2
kill -9 $PID
else
echo "无旧服务……"
fi echo "开始启动……"
sleep 1
java -jar $jarNew --spring.profiles.active=test &
2. 只需要把文件命名 deploy.sh,保存到jar包相同目录下
3. 启动命令:
a、切换到jar包目录
b、启动:./deploy.sh jar包名
比如包名 ticket-gateway-1.0.1-SNAPSHOT-f3dbc36.jar
输入 ./deploy.sh ticket-gateway-1.0.1-SNAPSHOT-f3dbc36
然后回车键
c、如果目录下一个服务有多个jar,那么jar包名需要精确,如果只有一个jar包,输入前面一部分能区分即可。
4. 如果是线上环境,就新建一个文件 deploy-prod.sh,修改脚本最后一行:
java -jar $jarNew --spring.profiles.active=prod & 注意:shell脚本文件名要包含 “deploy”
三、使用shell脚本依然需要自己打包、上传,后续研究下Jenkins+git+maven自动化部署~
shell脚本自动化部署的更多相关文章
- shell脚本自动化部署服务
shell脚本自动化部署 !/bin/bash #export PATH=$PATH:/export/maven/bin run_flag_dir="/data0/shell/deploy_ ...
- linux下使用shell脚本自动化部署项目
在Java开发项目时经常要把正在开发的项目发布到测试服务器中去测试,一般的话是要把项目先打成war包,然后把war包发布到服务器中,关闭服务器, 最后重新启动服务器,虽然这过程不是很繁琐,但如果是多个 ...
- Shell脚本-自动化部署WEB
#! /bin/ ] then echo "#### 参数有误,\$1:构建号必填" exit fi cd /root/workspace/xinya_erp/xinya_web ...
- Shell脚本-自动化部署反向代理、WEB、nfs
部署nginx反向代理三个web服务,调度算法使用加权轮询(由于物理原因只开启两台服务器) AutoNginxNfsService.sh #/bin/bash systemctl status ngi ...
- shell脚本自动化部署Zabbix4.2(修改脚本替换版本)
#!/bin/bash # 检查操作系统版本,该脚本只能运行在 Centos 7.x 系统上 cat /etc/redhat-release |grep -i centos |grep '7.[[:d ...
- shell脚本自动化部署XX的案例(附数组使用)
#!/bin/sh #Auto Make install MFS Files # cat <<EOF ++++++++++++++++Welcome To Use Auto Install ...
- fdisk分区硬盘并shell脚本自动化
最近工作需要用到对硬盘进行shell脚本自动化分区和mount的操作,google了一些资料,下面做个总结. 如果硬盘没有进行分区(逻辑分区或者扩展分区,关于两者概念,自行google),我们将无法将 ...
- Shell脚本一键部署——源码编译安装MySQL及自动补全工具
Shell脚本一键部署--源码编译安装MySQL及自动补全工具 编译安装MySQL 1.软件包 Mysql安装包 将安装包拖至/opt目录下,编辑一个脚本文件,将以下内容复制进去,然后source或者 ...
- jenkins+maven+Tomcat+shell构建自动化部署
https://yq.aliyun.com/articles/685931 1.官网下载war包:jenkins本质上就是一个web应用,直接下载jenkins的war包通过tomcat运行即可.ht ...
随机推荐
- QuartzCore
QuartzCore 说起QuartzCore不知道有多少小伙伴很容易和Quartz2D.CoreGraphics等混淆在一起傻傻分不清楚?所以在下面我们先把这几个很容易混淆或者是分不清楚的框架稍加整 ...
- Oozie任务调度框架详解及使用简介(一)
摘要:个人最近一段时间一直在使用oozie,从刚开始的各种别扭到现在越来越觉得有意思的情况下,想整理一下关于oozie的认知,整理出来一个oozie系列,本来市面上关于oozie的资料就比较少,希望写 ...
- 1z0-062 题库解析2
Examine the parameters for a database instance: NAME TYPE VALUE-------------------------------- ---- ...
- 【C_Language】---C文件学习
---恢复内容开始--- 又看了一遍文件的知识点了,断断续续已经看了2-3遍,也就这次花了点时间做了一下总结,以后我想都不会再去翻书了,哈哈. 1. 基于缓冲区的文件操作2. 打开关闭文件3. 单个字 ...
- .net 解析嵌套JSON
JSON格式文件如下:我们是要取出msgJsoncontent里面GeneralReportInfo下serviceData中的totalUseValue数据 { ", "mess ...
- 发布到远程存储库时遇到错误: Git failed with a fatal error.
正在推送 master发布到远程存储库时遇到错误: Git failed with a fatal error.Authentication failed for 'http://1212121xxx ...
- 本地Git绑定Gitee仓库
前言 Window的小伙伴如果还没在本地配好Git环境可以参考:https://www.cnblogs.com/poloyy/p/12185132.html 创建Gitee仓库 Gitee绑定本地Gi ...
- Activiti 规则任务(businessRuleTask)
Activiti 规则任务(businessRuleTask) 作者:Jesai 目前国内研究Activiti规则任务businessRuleTask)的文章在网上应该不超出3篇 小觑夜漫酒作伴,破晓 ...
- 如何查看Ubuntu服务器上Django项目的MySQL服务有没有挂?
如果你在项目内输入:MySQL -uroot -p 接着输入密码之后返回ERROR:1045……如下图 那么这就说明MySQL服务挂了. 需要重新启动一下 重启时在项目目录下输入:sudo servi ...
- 聊一聊 InnoDB 引擎中的这些索引策略
在上一篇中,我们简单的介绍了一下 InnoDB 引擎的索引类型,这一篇我们继续学习 InnoDB 的索引,聊一聊索引策略,更好的利用好索引,提升数据库的性能,主要聊一聊覆盖索引.最左前缀原则.索引下推 ...