linux 自动拉取 git,linux git拉取代码 脚本一键部署项目发布-Go语言中文社区

这个博客展示了两种自动化部署和进程管理的方法。第一种通过`/etc/profile`配置启动和停止服务,更新代码并重新打包部署。第二种方法是通过杀死特定进程或根据端口号来更新服务,同样涉及代码拉取、构建、清理和重启服务。
摘要由CSDN通过智能技术生成

#!/bin/bash

. /etc/profile

PROG="pinyu"

service tomcat-$PROG stop

TOMCAT_DIR="/usr/tomcat/tomcat-$PROG-80"

DIR="/usr/git/pinyu"

cd $DIR

git pull

mvn clean package -Dmaven.test.skip=true

rm -rf $TOMCAT_DIR/webapps/pinyu*

cp -R $DIR/target/pinyu $TOMCAT_DIR/webapps/pinyu

service tomcat-$PROG start

或者以杀死进程的方式:

#!/bin/bash

TOMCAT_DIR="/root/huliangyu/apache-tomcat-8.5.32"

SOURCE_DIR="/root/huliangyu/shentb_services/shentb_services"

TOMCAT_SERVICE="tomcat"

pid=`ps -ef | grep $TOMCAT_SERVICE | grep -v grep | awk '{print $2}'`

if [ -n "$pid" ]

then

kill -9 $pid

echo "closed process"$pid

fi

cd $SOURCE_DIR

git pull

mvn clean package -Dmaven.test.skip=true

rm -rf $TOMCAT_DIR/webapps/shentb-0.0.1.war

cp -r $SOURCE_DIR/target/shentb-0.0.1.war $TOMCAT_DIR/webapps/shentb-0.0.1.war

service $TOMCAT_SERVICE start

或者通过端口号杀死PID

#!/bin/bash

TOMCAT_DIR="/root/huliangyu/apache-tomcat-8.5.32"

SOURCE_DIR="/root/huliangyu/shentb_services/shentb_services"

TOMCAT_SERVICE="tomcat-stb_yupanpan"

#pid=`ps -ef | grep $TOMCAT_SERVICE | grep -v grep | awk '{print $2}'`

pid=`lsof -i:8888 | awk '{print $2}'`

if [ -n "$pid" ]

then

kill -9 $pid

echo "closed process"$pid

fi

cd $SOURCE_DIR

git pull

mvn clean package -Dmaven.test.skip=true

rm -rf $TOMCAT_DIR/webapps/shentb-0.0.1.war

cp -r $SOURCE_DIR/target/shentb-0.0.1.war $TOMCAT_DIR/webapps/shentb-0.0.1.war

service $TOMCAT_SERVICE start

`ps -ef | grep $TOMCAT_SERVICE | grep -v grep | awk '{print $2}'`的意思是查找有关$TOMCAT_SERVICE的服务并过滤掉本身的grep进程 获取PID

3a668300feae991109f938fce8a747da.png

Linux 环境中,你可以使用 Shell 脚本自动化执行 Git 拉取 Spring Boot 项目的操作,并将其打包成 WAR 文件。以下是一个示例的 Shell 脚本: ```bash #!/bin/bash # 进入项目目录 cd /path/to/your/project # 拉取最新代码 git pull # 编译项目 javac -d target/classes src/main/java/*.java # 复制静态资源文件 cp -r src/main/resources/* target/classes/ # 创建 WEB-INF 目录并复制编译后的类文件 mkdir -p target/WEB-INF/classes cp -r target/classes/* target/WEB-INF/classes/ # 创建 web.xml 文件(根据实际需求自定义内容) echo '<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" version="3.1"> <display-name>Your Project</display-name> </web-app>' > target/WEB-INF/web.xml # 打包成 WAR 文件 jar -cvf yourproject.war -C target . # 清理编译生成的文件 rm -rf target/classes target/WEB-INF echo "WAR 文件生成完成" ``` 在脚本中,你需要将 `/path/to/your/project` 替换成你实际的项目路径。执行该脚本后,它会自动拉取最新的代码,编译项目,复制静态资源文件,创建部署描述文件(`web.xml`),然后将项目打包成 WAR 文件(`yourproject.war`)。最后,在完成打包后,会打印出 "WAR 文件生成完成" 的提示信息。 请确保在执行脚本之前,已经正确安装了 Git、Java 和 Maven,并且配置了正确的环境变量。另外,根据你的项目需求,你可能需要根据实际情况进行一些调整和配置。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值