最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

部署SpringBoot項(xiàng)目到Linux服務(wù)器數(shù)據(jù)盤的完整流程

 更新時(shí)間:2025年11月18日 09:14:01   作者:悟空碼字  
這篇文章講述了如何在Linux服務(wù)器上掛載數(shù)據(jù)盤并部署SpringBoot項(xiàng)目,具體步驟包括查看磁盤狀態(tài)、分區(qū)與格式化、掛載分區(qū)、配置開機(jī)自動(dòng)掛載等,以及上傳項(xiàng)目文件、編寫啟動(dòng)腳本、啟動(dòng)項(xiàng)目并測試、配置Systemd服務(wù)管理,需要的朋友可以參考下

將Spring Boot項(xiàng)目部署到Linux服務(wù)器數(shù)據(jù)盤是一個(gè)常見的操作。首先是如何掛載數(shù)據(jù)盤,然后是如何部署Spring Boot項(xiàng)目。

第一部分:掛載數(shù)據(jù)盤

假設(shè)你有一臺新的Linux服務(wù)器(以CentOS 7/Alibaba Cloud Linux為例),并有一塊新的數(shù)據(jù)盤(例如 /dev/vdb)需要掛載到 /data 目錄。

注意: 操作磁盤有一定風(fēng)險(xiǎn),請確保已備份重要數(shù)據(jù)并進(jìn)行核對。磁盤標(biāo)識(如 /dev/vdb)可能因環(huán)境而異,請使用 lsblk 或 fdisk -l 命令確認(rèn)。

步驟 1: 查看磁盤狀態(tài)

1、連接到你的服務(wù)器:

ssh your_username@your_server_ip

切換到root用戶:

sudo -i

2、檢查當(dāng)前磁盤情況:

fdisk -l

或者使用更清晰的命令:

lsblk

你會看到類似這樣的輸出,vda 通常是系統(tǒng)盤,vdb 就是我們要操作的數(shù)據(jù)盤(未掛載)。

NAME   MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vda    253:0    0  40G  0 disk /
vdb    253:16   0 100G  0 disk

步驟 2: 分區(qū)與格式化

1、為數(shù)據(jù)盤創(chuàng)建分區(qū)(如果磁盤是新盤,通常創(chuàng)建一個(gè)主分區(qū)即可):

fdisk /dev/vdb

在 fdisk 交互界面中,依次輸入以下命令:

n:新建分區(qū)

p:選擇主分區(qū)

1:分區(qū)號(默認(rèn)1)

回車:選擇起始扇區(qū)(默認(rèn))

回車:選擇結(jié)束扇區(qū)(默認(rèn),使用整個(gè)磁盤)

w:寫入分區(qū)表并退出

2、檢查新分區(qū):

再次運(yùn)行 lsblk,現(xiàn)在你應(yīng)該能看到新分區(qū) /dev/vdb1。

NAME   MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vda    253:0    0  40G  0 disk /
vdb    253:16   0 100G  0 disk
└─vdb1 253:17   0 100G  0 part

3、格式化分區(qū)(這里使用 ext4 文件系統(tǒng)):

mkfs.ext4 /dev/vdb1

等待格式化完成。

步驟 3: 掛載分區(qū)

1、創(chuàng)建掛載點(diǎn)目錄(例如 /data):

mkdir /data

2、臨時(shí)掛載分區(qū)(重啟后會失效,用于測試):

mount /dev/vdb1 /data

3、驗(yàn)證掛載是否成功:

df -h

你應(yīng)該能在輸出中看到 /dev/vdb1 掛載到了 /data 目錄。

步驟 4: 配置開機(jī)自動(dòng)掛載

1、獲取分區(qū)的UUID(推薦使用UUID,它比設(shè)備名更穩(wěn)定):

blkid /dev/vdb1

輸出類似:/dev/vdb1: UUID=“c6b4c7a1-7b4a-4f4a-b6a1-1234567890ab” TYPE=“ext4”

2、編輯 /etc/fstab 文件:

vi /etc/fstab

3、在文件末尾添加一行:

UUID=c6b4c7a1-7b4a-4f4a-b6a1-1234567890ab /data ext4 defaults 0 0

解釋:

UUID=…:你剛才用 blkid 命令查到的實(shí)際UUID。

/data:掛載點(diǎn)。

ext4:文件系統(tǒng)類型。

defaults:掛載參數(shù)。

0:不備份。

0:不檢查磁盤順序。

4、驗(yàn)證 fstab 配置是否正確:

mount -a

這個(gè)命令會掛載所有在 fstab 中定義的文件系統(tǒng)。如果沒有任何報(bào)錯(cuò),說明配置正確。你可以再次運(yùn)行 df -h 確認(rèn) /data 依然掛載著。

至此,數(shù)據(jù)盤已經(jīng)成功掛載并配置為開機(jī)自動(dòng)掛載。

第二部分:部署Spring Boot項(xiàng)目

我們將把項(xiàng)目部署到剛掛載的數(shù)據(jù)盤(/data 目錄)下。

前提準(zhǔn)備

1、安裝Java環(huán)境:

你的Spring Boot項(xiàng)目大概率需要JRE/JDK。首先檢查是否已安裝:

java -version

如果未安裝,請安裝(例如安裝OpenJDK 8):

yum install -y java-1.8.0-openjdk-devel

(請根據(jù)你的項(xiàng)目要求選擇對應(yīng)的JDK版本,如JDK 11或17)

步驟 1: 上傳項(xiàng)目文件

1、在 /data 目錄下創(chuàng)建項(xiàng)目所需目錄:

mkdir -p /data/app/your-project-name
mkdir -p /data/app/your-project-name/logs

your-project-name:是你的項(xiàng)目名稱,例如 myapp。

logs:用于存放項(xiàng)目日志。

2、上傳你的JAR包:

使用 scp、sftp 或通過Git拉取等方式,將打包好的Spring Boot的 *.jar 文件上傳到 /data/app/your-project-name/ 目錄。
例如,從本地機(jī)器上傳:

# 在你的本地終端執(zhí)行,不是在服務(wù)器上!
scp target/your-springboot-app.jar your_username@your_server_ip:/data/app/your-project-name/

步驟 2: 編寫應(yīng)用啟動(dòng)腳本

為了管理方便,我們編寫一個(gè)Shell腳本來自動(dòng)啟動(dòng)、停止應(yīng)用。

1、在項(xiàng)目目錄創(chuàng)建腳本文件,例如 app.sh:

vi /data/app/your-project-name/app.sh

2、輸入以下內(nèi)容(請根據(jù)你的實(shí)際情況修改 JAR_NAME、APP_NAME 和 Xmx 等參數(shù)):

#!/bin/bash
# 配置項(xiàng)
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk # 根據(jù)你的實(shí)際路徑修改
export JRE_HOME=$JAVA_HOME/jre
export PATH=$PATH:$JAVA_HOME/bin

APP_HOME=/data/app/your-project-name
JAR_NAME="your-springboot-app.jar"
APP_NAME="my-springboot-app"
LOG_PATH=$APP_HOME/logs/$APP_NAME.log
PID_FILE=$APP_HOME/application.pid

# JVM參數(shù)
JAVA_OPTS="-Xms512m -Xmx1024m -XX:+UseG1GC"

cd $APP_HOME

function start() {
    if [ -f "$PID_FILE" ]; then
        pid=$(cat $PID_FILE)
        if kill -0 $pid 2>/dev/null; then
            echo "App $APP_NAME is already running (pid: $pid)."
            exit 1
        else
            rm -f $PID_FILE
        fi
    fi
    echo "Starting $APP_NAME..."
    # nohup 后臺運(yùn)行,輸出日志到指定文件
    nohup java $JAVA_OPTS -jar $JAR_NAME > $LOG_PATH 2>&1 &
    echo $! > $PID_FILE
    echo "Started $APP_NAME (pid: $!)"
}

function stop() {
    if [ -f "$PID_FILE" ]; then
        pid=$(cat $PID_FILE)
        echo "Stopping $APP_NAME (pid: $pid)..."
        kill $pid
        rm -f $PID_FILE
        echo "Stopped $APP_NAME."
    else
        echo "PID file not found. Stop operation failed."
    fi
}

function status() {
    if [ -f "$PID_FILE" ]; then
        pid=$(cat $PID_FILE)
        if kill -0 $pid 2>/dev/null; then
            echo "$APP_NAME is running (pid: $pid)."
        else
            echo "$APP_NAME PID file exists but process is not running."
        fi
    else
        echo "$APP_NAME is not running."
    fi
}

case "$1" in
    start)
        start
        ;;
    stop)
        stop
        ;;
    restart)
        stop
        sleep 3
        start
        ;;
    status)
        status
        ;;
    *)
        echo "Usage: $0 {start|stop|restart|status}"
        exit 1
        ;;
esac

3、給腳本添加執(zhí)行權(quán)限:

chmod +x /data/app/your-project-name/app.sh

步驟 3: 啟動(dòng)項(xiàng)目并測試

1、啟動(dòng)項(xiàng)目:

cd /data/app/your-project-name
./app.sh start

2、查看啟動(dòng)日志和狀態(tài):

./app.sh status
tail -100f logs/my-springboot-app.log

觀察日志是否有錯(cuò)誤,確認(rèn)應(yīng)用已正常啟動(dòng)。

3、測試訪問:

如果你的應(yīng)用有Web接口,使用 curl 或在瀏覽器中訪問你的服務(wù)器IP和端口,看是否返回預(yù)期結(jié)果。

步驟 4: (強(qiáng)烈推薦)配置Systemd服務(wù)管理

使用Systemd可以更專業(yè)地管理應(yīng)用,實(shí)現(xiàn)更完善的開機(jī)自啟和監(jiān)控。

1、創(chuàng)建service文件:

vi /etc/systemd/system/your-project-name.service

2、輸入以下內(nèi)容(同樣,需要修改路徑和參數(shù)):

[Unit]
Description=My Spring Boot Application
After=syslog.target network.target

[Service]
Type=simple
User=root
Group=root

# 項(xiàng)目根目錄
WorkingDirectory=/data/app/your-project-name
# 啟動(dòng)命令
ExecStart=/usr/bin/java -Xms512m -Xmx1024m -jar your-springboot-app.jar
# 指定日志輸出
StandardOutput=file:/data/app/your-project-name/logs/systemd-out.log
StandardError=file:/data/app/your-project-name/logs/systemd-err.log

# 應(yīng)用崩潰后自動(dòng)重啟
Restart=on-failure
RestartSec=30

[Install]
WantedBy=multi-user.target

3、重新加載Systemd配置并啟用服務(wù):

systemctl daemon-reload
systemctl enable your-project-name.service # 設(shè)置開機(jī)自啟
systemctl start your-project-name.service  # 啟動(dòng)服務(wù)
systemctl status your-project-name.service # 查看狀態(tài)

現(xiàn)在,Spring Boot項(xiàng)目已經(jīng)部署在數(shù)據(jù)盤上,并且可以通過Systemd進(jìn)行管理了。你可以使用 systemctl stop/start/restart your-project-name 來管理應(yīng)用。

以上就是部署SpringBoot項(xiàng)目到Linux服務(wù)器數(shù)據(jù)盤的完整流程的詳細(xì)內(nèi)容,更多關(guān)于部署SpringBoot到Linux數(shù)據(jù)盤的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • springboot使用JdbcTemplate完成對數(shù)據(jù)庫的增刪改查功能

    springboot使用JdbcTemplate完成對數(shù)據(jù)庫的增刪改查功能

    這篇文章主要介紹了springboot使用JdbcTemplate完成對數(shù)據(jù)庫的增刪改查功能,需要的朋友可以參考下
    2017-12-12
  • Vue.Js及Java實(shí)現(xiàn)文件分片上傳代碼實(shí)例

    Vue.Js及Java實(shí)現(xiàn)文件分片上傳代碼實(shí)例

    這篇文章主要介紹了Vue.Js及Java實(shí)現(xiàn)文件分片上傳代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-06-06
  • Java?Unsafe創(chuàng)建對象的方法實(shí)現(xiàn)

    Java?Unsafe創(chuàng)建對象的方法實(shí)現(xiàn)

    Java中使用Unsafe實(shí)例化對象是一項(xiàng)十分有趣而且強(qiáng)大的功能,本文主要介紹了Java?Unsafe創(chuàng)建對象的方法實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • Java中的隱式參數(shù)和顯示參數(shù)實(shí)例詳解

    Java中的隱式參數(shù)和顯示參數(shù)實(shí)例詳解

    這篇文章主要介紹了Java中的隱式參數(shù)和顯示參數(shù)是什么,另外還有兩個(gè)小例子幫助大家理解,需要的朋友可以參考下。
    2017-08-08
  • 使用lombok@Data存在extends時(shí)需要注意的問題

    使用lombok@Data存在extends時(shí)需要注意的問題

    在Java編程中,正確實(shí)現(xiàn)equals方法是保證對象比較一致性的關(guān)鍵,使用instanceof檢查類型可能導(dǎo)致違反對稱性原則,即當(dāng)子類和父類都重寫equals時(shí)可能出現(xiàn)a.equals(b)不等于b.equals(a)的情況,Lombok的@EqualsAndHashCode注解可以通過callSuper=true參數(shù)
    2024-10-10
  • SpringCloud?Config之動(dòng)態(tài)配置管理與高可用治理方式

    SpringCloud?Config之動(dòng)態(tài)配置管理與高可用治理方式

    這篇文章主要介紹了SpringCloud?Config之動(dòng)態(tài)配置管理與高可用治理方式,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2025-05-05
  • Java實(shí)現(xiàn)經(jīng)典俄羅斯方塊游戲

    Java實(shí)現(xiàn)經(jīng)典俄羅斯方塊游戲

    俄羅斯方塊是一個(gè)最初由阿列克謝帕吉特諾夫在蘇聯(lián)設(shè)計(jì)和編程的益智類視頻游戲。本文將利用Java實(shí)現(xiàn)這一經(jīng)典的小游戲,需要的可以參考一下
    2022-01-01
  • Java獲取本機(jī)IP地址的三種方法總結(jié)

    Java獲取本機(jī)IP地址的三種方法總結(jié)

    這篇文章主要為大家詳細(xì)介紹了java獲取本機(jī)IP地址的三種方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • 詳解java各種集合的線程安全

    詳解java各種集合的線程安全

    這篇文章主要介紹了詳解java各種集合的線程安全,小編覺得挺不錯(cuò)的,這里分享給大家,供需要的朋友參考。
    2017-10-10
  • Java批量操作如何提升ORM框架的批處理性能

    Java批量操作如何提升ORM框架的批處理性能

    本文介紹的批量插入、更新、刪除和讀取優(yōu)化技術(shù),以及性能監(jiān)控與調(diào)優(yōu)方法,為開發(fā)者提供了全面的批處理性能優(yōu)化思路,感興趣的朋友一起看看吧
    2025-05-05

最新評論

兴文县| 赤壁市| 赞皇县| 临桂县| 新民市| 屏南县| 永寿县| 离岛区| 彭阳县| 连州市| 龙陵县| 济阳县| 翼城县| 元朗区| 林甸县| 合江县| 芒康县| 尉氏县| 佛坪县| 武川县| 安龙县| 阜阳市| 景宁| 大方县| 白山市| 娄底市| 体育| 荣昌县| 和平县| 天镇县| 乐都县| 宾川县| 赤峰市| 万宁市| 石城县| 平度市| 延川县| 金昌市| 永平县| 泰兴市| 锦州市|