Linux脚本自动打包发服务

适用于前后台分离的服务

一个jar包 一个前台工程

实现自动杀端口,复制文件,备份数据,发布新版本。

脚本复制到Linux中

【./jb.sh】按Enter运行即可

内容如下:

#自定义存放的地方
#文件存放的根目录
latestDir=/home/xnj
#jar包名字
jarName=swWeb.jar
#前端压缩包文件名
qdZipName=Desktop.zip
#前端tomcat的位置
qdTomcatPosition=/home/tomcat/apache-tomcat-8.5.43/webapps/ROOT
#脚本存放的位置
jbFilePosition=/home/jb
#结束
#年
year=KaTeX parse error: Expected 'EOF', got '#' at position 12: (date +%Y) #̲月 month=(date +%Y%m)
#日
day=KaTeX parse error: Expected 'EOF', got '#' at position 17: …date +%Y%m%d); #̲时分秒 hms=(date +%H%M%S)
#当前目录
currentDir=$(pwd)
#cd到当前目录
cd $jbFilePosition
#创建年目录
if [ ! -d $latestDir ]; then
mkdir $latestDir
fi
if [ ! -d latestDir/ latestDir/latestDir/year ]; then
mkdir latestDir/ latestDir/latestDir/year
fi
if [ ! -d latestDir/ latestDir/latestDir/year/$month ]; then
mkdir latestDir/ latestDir/latestDir/year/$month
fi
if [ ! -d latestDir/ latestDir/latestDir/year/month/ month/month/day ]; then
mkdir latestDir/ latestDir/latestDir/year/month/ month/month/day
fi
if [ ! -d latestDir/ latestDir/latestDir/year/month/ month/month/day/$hms ]; then
mkdir latestDir/ latestDir/latestDir/year/month/ month/month/day/KaTeX parse error: Expected 'EOF', got '#' at position 9: hms fi #̲将当前目录的下的jar包和前端…jarName latestDir/ latestDir/latestDir/year/month/ month/month/day/hmscp−r./ hmscp -r ./hmscp−r./qdZipName latestDir/ latestDir/latestDir/year/month/ month/month/day/$hms
#杀掉进程 awk是 是处理行数据的 xargs 是多个命令的连接的管道
ps -ef | grep $jarName | grep -v grep | awk ‘{print $2}' | xargs kill -9
#删除前台工程
rm -rf qdTomcatPosition/ qdTomcatPosition/qdTomcatPosition/qdZipName
rm -rf $qdTomcatPosition/static
rm -rf KaTeX parse error: Expected 'EOF', got '#' at position 29: …ion/index.html #̲加载新前台工程 cp -r .…qdZipName $qdTomcatPosition/
cd qdTomcatPositionunzip./ qdTomcatPositionunzip ./qdTomcatPositionunzip./qdZipName
#启动新的jar包
nohup java -jar latestDir/ latestDir/latestDir/year/month/ month/month/day/hms/ hms/hms/jarName >nohup.out &

ps:服务器自动打包发布shell脚本

脚本功能简介

  • 自动拉取Git服务器最新代码
  • 服务器maven自动打包
  • 自动重启发布jar项目
  • nohup 启动项目后保存进程号至文件

前置条件

  • Git可用
  • maven可用
  • spring boot打成jar包可以正常启动

脚本内容

#!/bin/sh
echo " ====开始拉取仓库最新代码==== "
cd /data/code/better;pwd;
git pull;git status;
echo "   "
git log --pretty=format:"%h - %an, %ar : %s" -5;
echo " ====服务器打包===="
mvn install -Dmaven.test.skip=true;
mvn clean package -Dmaven.test.skip=true;
echo " ====移动jar包并改名===="
cd /data/app;pwd;
cp /data/code/better/backend_web/target/backend_web-1.0-SNAPSHOT.jar /data/app;
mv backend_web-1.0-SNAPSHOT.jar better.jar;
echo " =====停止Java应用======"
#jps | grep better.jar | awk '{print $1;}' | xargs kill -9
kill -9 `cat /data/app/betterPid.txt`
echo " =====启动Java应用======"
nohup java -jar better.jar >/data/logdir/better/out.log & echo $! > /data/app/betterPid.txt &
#查看日志
echo "   "
echo " ===启动项目的进程号====";
cat /data/app/betterPid.txt;
tail -20f /data/logdir/better/out.log;

运行脚本

sh better.sh

总结

以上所述是小编给大家介绍的Linux脚本自动打包发服务,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

(0)

相关推荐

  • 详谈Linux打包与压缩及tar命令

    打包和压缩 在linux中,打包和压缩可以说是两个不同的概念,弄清这两个概念对于我们理解复杂的文件后缀有非常大的帮助 打包 将若干个文件和目录打包在一起变成一个大的文件,这时只是简单的打包,所以一般打包后的文件大小比被打包的文件总和还大 压缩 将一个文件根据一定的算法变成一个小文件,压缩比用来衡量压缩前与压缩后的文件大小比值 压缩 在linux中主要有三个压缩命令gzip.bzip2.xz,它们各自采用不同的压缩算法,说明及常用参数如下: 压缩命令 gzip bzip2 xz 文件名后续 .gz

  • Linux下几种并发服务器的实现模式(详解)

    1>单线程或者单进程 相当于短链接,当accept之后,就开始数据的接收和数据的发送,不接受新的连接,即一个server,一个client 不存在并发. 2>循环服务器和并发服务器 1.循环服务器:一个server只能一次只能接收一个client,当当前client结束访问之后才能进行下一个client的连接. 2.并发服务器:一个server同一时间可以响应很多客户端的访问. 3>select+多线程模式 并发服务器的三种实现方式 1.多进程并发服务器 是指TCP连接后,每一个客户机的

  • linux 打包当前文件夹下所有文件的方法

    如下所示: tar czvf test.tar.gz *         #压缩当前文件夹下非隐藏文件的文件 tar czvf test.tar.gz  .[!.]*   #压缩当前文件夹下隐藏文件排除两个隐藏文件夹"."和".." tar zcvf test.tar  #`ls -a` 以上这篇linux 打包当前文件夹下所有文件的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们. 您可能感兴趣的文章: linux中tar打包指定路

  • linux中tar打包指定路径文件的实现方法

    压缩: tar czvf /data/backup/test.tar.gz /data/a/b/directory 解压: cd /data/test tar xzvf /data/backup/test.tar.gz 问题是,解压后的文件,在/data/test/data/a/b/directory里面 要想解压在当前目录路径. 这样写就可以解决了 tar czvf /data/backup/test.tar.gz /data/a/b/directory 改成 tar czvf /data/b

  • Linux tar 压缩打包命令使用方法第1/2页

    tar命令  [root@linux ~]# tar [-cxtzjvfpPN] 文件与目录 -. 参数: -c :建立一个压缩文件的参数指令(create 的意思): -x :解开一个压缩文件的参数指令! -t :查看 tarfile 里面的文件! 特别注意,在参数的下达中, c/x/t 仅能存在一个!不可同时存在! 因为不可能同时压缩与解压缩. -z :是否同时具有 gzip 的属性?亦即是否需要用 gzip 压缩? -j :是否同时具有 bzip2 的属性?亦即是否需要用 bzip2 压缩

  • springboot打包部署到linux服务器的方法

    1.由于springboot集成了tomcat,所以打包的时候不再使用war,而是使用jar <groupId>cn</groupId> <artifactId>back</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> 2.将springboot启动类添加继承SpringBootServletInitialize

  • Linux下RPM打包制作过程

    开始前的准备 安装rpmbuild软件包 yum -y install rpm-build 生成相关目录 要生成rpm相关目录,可以手动创建,也可以通过rpmbuild命令创建.如: [root@yang data]# rpmbuild zabbix_agentd_ops.spec error: File /root/rpmbuild/SOURCES/zabbix-3.0.3.tar.gz: No such file or directory 有报错,无需理会,可以看到rpmbuild目录已经创

  • Linux脚本自动打包发服务

    适用于前后台分离的服务 一个jar包 一个前台工程 实现自动杀端口,复制文件,备份数据,发布新版本. 脚本复制到Linux中 [./jb.sh]按Enter运行即可 内容如下: #自定义存放的地方 #文件存放的根目录 latestDir=/home/xnj #jar包名字 jarName=swWeb.jar #前端压缩包文件名 qdZipName=Desktop.zip #前端tomcat的位置 qdTomcatPosition=/home/tomcat/apache-tomcat-8.5.43

  • Linux脚本自动输入密码

    #!/usr/bin/expect set timeout 20 set password "12345678" spawn /usr/bin/sudo su expect "*password for xxx: " send "$password\n" interact 保存内容到一个文件中,如exp-demo.sh chmod 0777 exp-demo.sh 然后在shell下执行: expect exp-demo.sh 以上所述是小编给大

  • shell 脚本自动搭建nfs服务的方法示例

    本文介绍了shell 脚本自动搭建nfs服务的方法示例,分享给大家,具体如下: #vim /sh/zidong_dajian_nfs_fuwu.sh #!/bin/bash #name:zidong_dajian_nfs_fuwu.sh #path:/sh/ #update:2017-9-17 #测试网络是否通畅 ping -c 1 172.16.13.254 >/dev/null && echo **********网络ok********** #第一步:关闭selinux和防火墙

  • Linux下使用shell脚本自动执行脚本文件

    以下实例本人在Centos6.5 64位操作系统中使用 一.定时复制文件 a.在/usr/local/wfjb_web_back目录下创建 tomcatBack.sh文件 文件内容: #将tomcat中的应用wfjb_web 复制到 /usr/local/wfjb_web_back/tomcat_back/目录下 并按照日期作为文件名称 cp -af /usr/local/apache-tomcat-7.0.73/webapps/wfjb_web /usr/local/wfjb_web_back

  • .NET微服务架构CI/CD自动打包镜像

    目录 准备工作 一.开启docker的tcp 二.Jenkins安装Docker插件 配置Docker 配置工作流 小结 准备工作 一.开启docker的tcp 我的服务器是linux,以端口2376为例,找到docker.service,在ExecStart下新增这段代码即可: -H tcp://0.0.0.0:2376 -H unix:///var/run/docker.sock 效果图: 然后重载服务列表,重启docker,语句: systemctl daemon-reload syste

  • Linux下通过脚本自动备份Oracle数据库并删除指定天数前的备份

    说明: Oracle数据库服务器 操作系统:CentOS IP:192.168.0.198 端口:1521 SID:orcl Oracle数据库版本:Oracle11gR2 具体操作: 1.root用户登录服务器 mkdir -p /backup/oracledata #新建Oracle数据库备份目录 chown -R oracle:oinstall /backup/oracledata -R #设置目录权限为oinstall用户组的oracle用户(用户oracle与用户组oinstall是在

  • Eclipse下配置Ant脚本并自动打包带签名的Android apk

    eclipse虽然用的比较少,但是在一些古老的项目上还会用到滴,其中最麻烦的事情就是打带签名包的问题,不太方便,下面通过本文给大家记录下配置ant,自动打包带签名apk的过程,作为备份.(PC环境为MAC) 1,第一步得安ant,下载对应安装包,解压后配置环境变量: export ANT_HOME="/Users/yanzi/work/apache-ant-1.9.4" export PATH=${PATH}:${ANT_HOME}/bin 通过which ant检查是否安装成功. 2

  • React Native开发中自动打包脚本的实例代码

    在日常的RN开发中,我们避免不了需要将我们编写的代码编译成安装包,然后生成二维码,供需要测试的人员扫描下载.但是对于非原生的开发人员来说,可能不知如何使用Xcode或者Android studio来导出ipa.apk安装包,为了解决非原生开发的同学们打安装包的痛苦,这里作者就提供一个shell脚本文件来实现一键式自动打包并生成安装二维码 (这里上传安装包生成二维码需要借助于三方平台fir.im) 打包脚本文件下载地址 https://github.com/guangqiang-liu/AutoP

  • linux 服务器自动备份脚本的方法(mysql、附件备份)

    一.创建backup.sh脚本文件 #!/bin/sh SOURCE_FOLDER=/data DB_FOLDER=/data/db BACKUP_FOLDER=/data/backup TM=`date +%Y%m%d%H%M%S` echo start to dump mysql database and backup files at $TM # delete old sql backup files cd $DB_FOLDER rm -rf $DB_FOLDER/*.sql #dump

  • Linux Autofs自动挂载服务安装部署教程

    目录 一.autofs服务简介 二.autofs安装与部署 三.autofs效果验证 一.autofs服务简介 我们在使用Linux时,如果要访问硬件资源,则需要使用mount命令进行挂载,将硬件资源与一个目录进行对应,然后才可以访问使用该存储介质.如果使用samba或者是NFS服务,也需要对远程存储设备进行挂载.mount挂载是使用外部存储介质或者文件系统所必须的一步操作,但是如果挂载的资源过多,则会给网络资源和服务器资源造成一定的负载,从而降低服务器性能. 为了解决这一问题,我们可以使用au

随机推荐