一文帶你快速了解如何在Linux上部署項(xiàng)目
后端環(huán)境要搭好,如jdk、mysql、tomcat、maven、git等
一、手工部署項(xiàng)目
1.在IDEA中開(kāi)發(fā)SpringBoot項(xiàng)目并打成jar包

2. 將jar包上傳到Linux服務(wù)器
mkdir /usr/local/app ---- 創(chuàng)建目錄,將項(xiàng)目jar包放到此目錄

3. 輸入指令啟動(dòng)SpringBoot程序

4. 檢查防火墻,確保80端口(項(xiàng)目端口)對(duì)外開(kāi)放,訪問(wèn)SpringBoot項(xiàng)目

5. 在windows訪問(wèn)項(xiàng)目

6. 改為后臺(tái)運(yùn)行SpringBoot程序,并將日志輸出到日志文件 目前程序運(yùn)行的問(wèn)題 :
線上程序不會(huì)采用控制臺(tái)霸屏的形式運(yùn)行程序,而是將程序在后臺(tái)運(yùn)行
線上程序不會(huì)將日志輸出到控制臺(tái),而是輸出到日志文件,方便運(yùn)維查閱信息
- nohup命令
nohup 命令 :
英文全稱 no hang up (不掛起),用于不掛斷地運(yùn)行指定命令,退出終端不會(huì)影響程序的運(yùn)行
語(yǔ)法格式 :
nohup Command [ Arg …] [&]
參數(shù)說(shuō)明 :
Command :要執(zhí)行的命念
Arg :一些參數(shù),可以指定輸出文件
& : 讓命令在后臺(tái)運(yùn)行
舉例 :
nohup java -jar boot工程.jar &> hello.log & ---- 后臺(tái)運(yùn)行java -jar命令,并將日志輸出到reboot.log文件

7. 停止SpringBoot程序(殺進(jìn)程)


二、通過(guò)Shell腳本自動(dòng)部署項(xiàng)目

1. 在Linux中安裝Git
Git安裝指令
- yum list git ---- 列出git安裝包
- yum install git ---- 在線安裝git

使用Git克隆遠(yuǎn)程倉(cāng)庫(kù)代碼
- cd /usr/local/
- git clone https://gitee.com/Dongli_01/re_boot.git

2. 在Linux中安裝maven
1. 將maven安裝包上傳到Linux

2. 解壓安裝包
tar -zxvf apache-maven-3.5.4-bin.tar.gz -C /usr/local

3. 在Linux中安裝maven
- vim /etc/profile ---- 修改配置文件,加入如下內(nèi)容
export MAVEN_HOME=/usr/local/apache-maven-3.5.4
export PATH=$ JAVA_HOME/bin:$ MAVEN_HOME/bin:$PATH
$ JAVA 和 $ MAVEN 中的 $ 和 J、M之間沒(méi)有空格,此處是由于MD語(yǔ)法顯示問(wèn)題空一格

加載資源,查看maven版本
source /etc/profile
mvn -version

vim /usr/local/apache-maven-3.5.4/conf/settings.xml ---- 設(shè)置一下 setting 文件,指定 maven 本地倉(cāng)庫(kù)的目錄(repo目錄需要自己創(chuàng)建),修改配置文件內(nèi)容如下
< localRepository>/usr/local/repo</ localRepository>
注:< localRepository> 中的 < 和 l 以及 </ localRepository> 中的 / 和 l 之間沒(méi)有空格,此處是由于MD語(yǔ)法問(wèn)題空一格

3. 編寫(xiě)Shell腳本 (拉取代碼、編譯、打包、啟動(dòng)
- Shell 腳本簡(jiǎn)介
Shell腳本 (shell script) ,是一種Linux系統(tǒng)中的腳本程序。使用Shel腳本編程跟Javascript、Java編程一樣,只要有一個(gè)能編寫(xiě)代碼的文本編輯器和一個(gè)能解釋執(zhí)行的腳本解釋器就可以了
- 編寫(xiě)Shell 腳本
#!/bin/sh
echo =================================
echo 自動(dòng)化部署腳本啟動(dòng)
echo =================================
echo 停止原來(lái)運(yùn)行中的工程
APP_NAME=re_boot
tpid=`ps -ef|grep $APP_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
if [ ${tpid} ]; then
echo 'Stop Process...'
kill -15 $tpid
fi
sleep 2
tpid=`ps -ef|grep $APP_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
if [ ${tpid} ]; then
echo 'Kill Process!'
kill -9 $tpid
else
echo 'Stop Success!'
fi
echo 準(zhǔn)備從Git倉(cāng)庫(kù)拉取最新代碼
cd /usr/local/re_boot
echo 開(kāi)始從Git倉(cāng)庫(kù)拉取最新代碼
git pull
echo 代碼拉取完成
echo 開(kāi)始打包
output=`mvn clean package -Dmaven.test.skip=true`
cd target
echo 啟動(dòng)項(xiàng)目
nohup java -jar re_boot-1.0-SNAPSHOT.jar &> re_boot.log &
echo 項(xiàng)目啟動(dòng)完成
4. 為用戶授予執(zhí)行shell腳本的權(quán)限
1. 權(quán)限說(shuō)明
- chmod (英文全拼: change mode) 命令是控制用戶對(duì)文件的權(quán)限的命令
- Linux中的權(quán)限分為: 讀®、寫(xiě)(w)、執(zhí)行(x)三種權(quán)限
- Linux的文件調(diào)用權(quán)限分為三級(jí):文件所有者 (wner) 、用戶組 (Group) 、其它用戶 (Other Users)
- 只有文件的所有者和超級(jí)用戶可以修改文件或目錄的權(quán)限
- 要執(zhí)行Shell腳本需要有對(duì)此腳本文件的執(zhí)行權(quán)限,如果沒(méi)有則不能執(zhí)行

2. chmod命令簡(jiǎn)介
- chmod命令可以使用八進(jìn)制數(shù)來(lái)指定權(quán)限
| # | 權(quán)限 | rwx |
|---|---|---|
| 7 | 讀 + 寫(xiě) + 執(zhí)行 | rwx |
| 6 | 讀 + 寫(xiě) | rw - |
| 5 | 讀 + 執(zhí)行 | r - w |
| 4 | 只讀 | r - - |
| 3 | 寫(xiě) + 執(zhí)行 | - wx |
| 2 | 只寫(xiě) | - w - |
| 1 | 只執(zhí)行 | - -x |
| 0 | 無(wú) | - - - |
- 舉例:
- chmod 777 bootStart.sh ---- 為所有用戶授予讀、寫(xiě)、執(zhí)行權(quán)限
- chmod 755 bootstart.sh ---- 為文件擁有者授予讀、寫(xiě)、執(zhí)行權(quán)限,同組用戶和其他用戶授予讀、執(zhí)行權(quán)限
- chmod 210 boot5tat.h ---- 為文件擁有者授予寫(xiě)權(quán)限,同組用戶授予執(zhí)行權(quán)限,其他用戶沒(méi)有任何權(quán)限
- 注意 :三位數(shù)字分別代表不同用戶的權(quán)限
- 第1位表示文件擁有者的權(quán)限
- 第2位表示同組用戶的權(quán)限
- 第3位表示其他用戶的權(quán)限
5. 執(zhí)行Shell腳本


總結(jié)
歡迎各位留言交流以及批評(píng)指正,如果文章對(duì)您有幫助或者覺(jué)得作者寫(xiě)的還不錯(cuò)可以點(diǎn)一下關(guān)注,點(diǎn)贊,收藏支持一下。
以上就是一文帶你快速了解如何在Linux上部署項(xiàng)目的詳細(xì)內(nèi)容,更多關(guān)于在Linux上部署項(xiàng)目的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
linux查看服務(wù)端證書(shū)方式(keytool和openssl)
介紹了通過(guò)keytool和openssl工具來(lái)查看服務(wù)器端的SSL/TLS證書(shū),包括直接抓取服務(wù)器證書(shū)和下載證書(shū)文件的方法,詳細(xì)說(shuō)明了每種方法的操作步驟和輸出結(jié)果,幫助用戶驗(yàn)證證書(shū)有效性和進(jìn)行信任鏈驗(yàn)證2024-10-10
Linux內(nèi)核設(shè)備驅(qū)動(dòng)之虛擬文件系統(tǒng)筆記整理
今天小編就為大家分享一篇關(guān)于Linux內(nèi)核設(shè)備驅(qū)動(dòng)之虛擬文件系統(tǒng)筆記整理,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2018-12-12
詳解Linux(centos7)下安裝OpenSSL安裝圖文方法
這篇文章主要介紹了詳解Linux(centos7)下安裝OpenSSL安裝圖文方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-02-02
Ubuntu 12.04 64位 對(duì)Python 源代碼編譯詳解
這篇文章主要介紹了Ubuntu 12.04 64位 對(duì)Python 源代碼編譯的相關(guān)資料,需要的朋友可以參考下2017-01-01
linux下查看yum/rpm/dpkg某軟件是否已安裝的方法
這篇文章主要介紹了在linux下查看yum/rpm/dpkg某軟件是否已安裝的方法,文中給出了詳細(xì)的示例代碼,對(duì)大家具有一定的參考價(jià)值,需要的朋友們下面來(lái)一起看看吧。2017-03-03
ubuntu 16.04LTS 開(kāi)機(jī)啟動(dòng)自動(dòng)更換壁紙的實(shí)現(xiàn)方法
下面小編就為大家分享一篇ubuntu 16.04LTS 開(kāi)機(jī)啟動(dòng)自動(dòng)更換壁紙的實(shí)現(xiàn)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-02-02
CentOS 7 中firewall-cmd命令詳細(xì)介紹
這篇文章主要介紹了 CentOS 7 中firewall-cmd命令詳細(xì)介紹的相關(guān)資料,這里對(duì)CentOS 7的firewall-cmd命令一一介紹,希望能幫助開(kāi)始使用的朋友,需要的朋友可以參考下2016-11-11
Linux使用scp遠(yuǎn)程傳輸命令進(jìn)行服務(wù)器文件互傳(阿里云服務(wù)器)
因?yàn)橐慌_(tái)服務(wù)器linux服務(wù)器總是出問(wèn)題,也沒(méi)找到問(wèn)題只好重新配置環(huán)境,那么就需要文件備份操作,既然是linux服務(wù)器可以使用scp命令傳輸文件了2016-09-09

