Shell脚本自动拉取Git仓库代码打包部署
·
#创建文件名
vim start.sh
脚本命令:
#!/bin/bash
set -e # 任何命令失败时立即退出脚本
# 1. 拉取最新代码(如果代码仓库需要认证(如 SSH 密钥或账号密码),git pull 可能因权限问题失败)
echo "Pulling latest code from Git..."
cd /root/demo
if ! git pull; then
echo "Error: git pull failed!"
exit 1
fi
# 2. 重新构建应用
echo "Building application with Maven..."
cd /root/demo
if ! mvn install; then
echo "Error: mvn install failed!"
exit 1
fi
# 3. 替换旧 JAR 包
echo "Replacing old JAR file..."
cd /usr/java/demo
rm -f demo.jar # 直接删除旧文件(无需 -rf)
mv /root/demo/demo-admin/target/demo-admin.jar /usr/java/demo/
# 4. 停止旧进程(优雅终止优先)
echo "Stopping existing demo-admin process..."
tomcatID=$(pgrep -f 'demo-admin')
if [ -n "$tomcatID" ]; then
echo "Found running process (PID: $tomcatID), stopping gracefully..."
kill -15 $tomcatID
sleep 5 # 等待 5 秒
if ps -p $tomcatID > /dev/null; then
echo "Process still running, forcing kill..."
kill -9 $tomcatID
fi
else
echo "demo-admin is not running."
fi
# 5. 启动新进程
echo "Starting new demo-admin process..."
nohup java -jar /usr/java/demo/demo-admin.jar >> demo-admin.out 2>&1 &
# 6. 查看日志
echo "Deployment completed. Tail logs with: tail -f demo-admin.out"
运行脚本:
sh start.sh
更多推荐



所有评论(0)