服务器自动部署脚本

目的

做完毕设没事就买个服务器玩玩,把项目部署了上去,并通过IP可以外网访问。但是项目后期还要根据导师建议做出调整,所以每次部署都太麻烦了,前后端分开打包再上传再运行。于是就通过脚本自动拉取GitHub项目下来通过maven和vue-cli分别打包,最后再运行。可以一行代码解放双手

问题

1.脚本执行流程

2.怎么实现每一步

3.遇到的疑难杂症

解决思路

1.脚本执行流程

  1. 通过管道符查询pid联合kill杀死进程
  2. 拉取代码
  3. 打包
  4. 将所有用到的jar包和前端文件移动到指定目录(方便管理)
  5. 启动项目

2.怎么实现每一步

#!/bin/sh
echo =================================
echo  自动化部署脚本启动
echo =================================

echo 停止原来运行中的工程
APP_NAME=ruoyi-admin.jar

tpid=`ps -ef|grep $APP_NAME | grep -v grep | awk '{print $2}'`
if [ ${tpid} ]; then
    echo 'Stop Process...'
    kill -15 $tpid
fi
sleep 2
tpid=`ps -ef|grep $APP_NAME | grep -v grep | awk '{print $2}'`
if [ ${tpid} ]; then
    echo 'Kill Process!'
    kill -9 $tpid
else
    echo 'Stop Success!'
fi

echo 准备从GitHub仓库拉取最新代码
cd /usr/local/src/project/dissertation

echo 开始从GitHub仓库拉取最新代码
git pull
echo 代码拉取完成

echo 开始打包后端项目中...
output=`mvn clean package -Dmaven.test.skip=true`

echo 开始将jar包移动到指定目录
echo 正在移动ruoyi-admin.jar中...
mv /usr/local/src/project/dissertation/ruoyi-admin/target/ruoyi-admin.jar /usr/local/src/project
echo 正在移动ruoyi-common-3.8.6.jar中...
mv /usr/local/src/project/dissertation/ruoyi-common/target/ruoyi-common-3.8.6.jar /usr/local/src/project
echo 正在移动ruoyi-framework-3.8.6.jar中...
mv /usr/local/src/project/dissertation/ruoyi-framework/target/ruoyi-framework-3.8.6.jar /usr/local/src/project
echo 正在移动 ruoyi-generator-3.8.6.jarr中...
mv /usr/local/src/project/dissertation/ruoyi-generator/target/ruoyi-generator-3.8.6.jar /usr/local/src/project
echo 正在移动ruoyi-quartz-3.8.6.jar中...
mv /usr/local/src/project/dissertation/ruoyi-quartz/target/ruoyi-quartz-3.8.6.jar /usr/local/src/project
echo 正在移动ruoyi-system-3.8.6.jar中...
mv /usr/local/src/project/dissertation/ruoyi-system/target/ruoyi-system-3.8.6.jar /usr/local/src/project

echo 开始打包前端项目中...
cd /usr/local/src/project/dissertation/ruoyi-ui
output=`npm run build:prod`
echo 正在删除dist旧目录...
rm -rf /usr/local/src/project/dist
echo 正在移动dist目录中...
mv /usr/local/src/project/dissertation/ruoyi-ui/dist/ /usr/local/src/project/

cd /usr/local/src/project


echo 后端项目启动中...
nohup java -jar ruoyi-admin.jar &> /usr/local/src/project/log/article.log &
echo 前端项目启动中...
cd /usr/local/nginx/sbin
output=`./nginx -s reload`
echo 项目启动完成

3.遇到的疑难杂症

1.前置条件

  • maven、vue-cli

2.mv移动目标文件显示目录非空

  • 在移动前先删除之前的旧目录
  • echo 正在删除dist旧目录...
    rm -rf /usr/local/src/project/dist
    echo 正在移动dist目录中...
    mv /usr/local/src/project/dissertation/ruoyi-ui/dist/ /usr/local/src/project/

3.前端使用nginx部署后刷新或退出nginx404

# 在location 块添加刷新页面重定向规则
location / {
            root   /usr/local/src/project/dist;
			try_files $uri $uri/ /index.html;
            index  index.html index.htm;
        }

4.Nginx 413 Request Entity Too Large

存在的问题因为上传文件大于Nginx默认的大小会被Nginx给拦截下来,修改配置文件即可

# 在http块添加代码 大小看需求设置一个合适的数值
client_max_body_size 20m;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

小张不嚣张Demo

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

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

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

打赏作者

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

抵扣说明:

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

余额充值