之前使用过jenkins,这次分享一个在mac下直接sh脚本发布感觉更随意,方便!小项目就没必要去折腾jenkins了。。哈哈。。

首先mac 要安装sshpass 命令用于ssh 连接等相关操作。

brew install sshpass

安装完成后,新建remote_post.sh 文件

#!/bin/bash

# 配置参数
SERVER_IP="IP"
USERNAME="用户名"
PASSWORD="密码"
WAR_FILE="***/ruoyi-web/target/ruoyi-web.war"
REMOTE_DIR="***/apache-tomcat-9.0.88/webapps/web"
TOMCAT_DIR="***/apache-tomcat-9.0.88/bin"

# 上传 WAR 文件
echo "正在上传 WAR 文件..."
#这里 scp 如果要传目录 需要加上 scp -r  ,文件省略
sshpass -p "$PASSWORD" scp "$WAR_FILE" "$USERNAME@$SERVER_IP:$REMOTE_DIR"

if [ $? -ne 0 ]; then
    echo "上传失败!"
    exit 1
fi

echo "上传成功!"

# 重启 Tomcat
# 连接到服务器并执行 shutdown.sh 和 start.sh
sshpass -p "$PASSWORD" ssh "$USERNAME@$SERVER_IP" << EOF
    echo "正在关闭 Tomcat..."
    cd "$TOMCAT_DIR"
    ./shutdown.sh

    sleep 5  # 等待 Tomcat 完全关闭

    echo "正在启动 Tomcat..."
    ./startup.sh
EOF

if [ $? -eq 0 ]; then
    echo "Tomcat 已成功重启!"
else
    echo "重启失败!"
fi

运行

chmod +x  ./remote_post.sh  //赋予权限
./remote_post.sh  //执行 等待完成

wow! 启动成功了!