Java采用jar包方式自动化部署

自动化部署脚本
通过SSH将本地的Java应用程序(JAR文件)部署到远程服务器上,并自动启动该应用程序。

脚本的主要步骤包括:

  1. 停止服务器上的当前应用程序:通过SSH连接到服务器,找到正在运行的Java应用程序的进程ID,并杀掉该进程。

  2. 删除旧的JAR文件:在服务器上,如果旧的JAR文件存在,则将其删除。

  3. 上传新的JAR文件:将本地的JAR文件通过SCP上传到服务器上指定的目录。

  4. 启动应用程序:在服务器上,通过nohup命令启动Java应用程序,并将输出重定向到nohup.out文件中。

脚本使用了sshpass工具来避免在SSH连接时手动输入密码,提高了部署的自动化程度。

如果你也需要频繁地将Java应用程序部署到远程服务器上,不妨试试这个脚本,它可能会让你的部署过程变得更加轻松和高效。

以下是脚本的代码示例(注意:你需要根据实际情况修改服务器信息、JAR文件名称和本地JAR文件路径等参数):

#!/bin/bash

# 使用之前需要安装wsl 安装命令如下
# dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
# wsl --install
# wsl --list --online
# wsl --install -d Ubuntu
# wsl --list --online
# wsl --install -d Ubuntu
# 安装完毕,重启计算机,之后打开wsl安装sshpass
# sudo apt-get update
# sudo apt-get install sshpass
# 都安装完毕以后可以用wsl运行该脚本

# 2. 定义服务器信息
SERVER_USER="your_username"
SERVER_IP="your_server_ip"
SERVER_PATH="/opt/tensok"
JAR_NAME="your-jar-file.jar"
LOCAL_JAR_PATH="target/$JAR_NAME"  # 确保这里的路径正确
PASSWORD="your_password"

# 3. 通过 ssh 到服务器并找到正在运行的进程 ID,然后杀掉它
echo "Stopping current application on server..."
sshpass -p $PASSWORD ssh $SERVER_USER@$SERVER_IP << EOF
    PID=\$(ps -ef | grep $JAR_NAME | grep -v grep | awk '{print \$2}')
    if [ ! -z "\$PID" ]; then
        kill -9 \$PID
        echo "Killed process \$PID"
    else
        echo "No running process found for $JAR_NAME"
    fi

    # 删除旧的 jar 文件
    if [ -f $SERVER_PATH/$JAR_NAME ]; then
        rm $SERVER_PATH/$JAR_NAME
        echo "Deleted old JAR file."
    fi
EOF

# 4. 将新的 JAR 文件上传到服务器
echo "Uploading new JAR file to server..."
sshpass -p $PASSWORD scp $LOCAL_JAR_PATH $SERVER_USER@$SERVER_IP:$SERVER_PATH/

# 5. 在服务器上通过 nohup 启动应用
echo "Starting application on server..."
sshpass -p $PASSWORD ssh $SERVER_USER@$SERVER_IP << EOF
    cd $SERVER_PATH
    nohup java -jar $JAR_NAME > nohup.out 2>&1 &
    echo "Application started."
EOF

echo "Deployment completed."

使用之前需要按照注释中的内容部署一个WSL

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值