一文帶你快速了解如何在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. 編寫Shell腳本 (拉取代碼、編譯、打包、啟動(dòng)
- Shell 腳本簡(jiǎn)介
Shell腳本 (shell script) ,是一種Linux系統(tǒng)中的腳本程序。使用Shel腳本編程跟Javascript、Java編程一樣,只要有一個(gè)能編寫代碼的文本編輯器和一個(gè)能解釋執(zhí)行的腳本解釋器就可以了
- 編寫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)限分為: 讀®、寫(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 | 讀 + 寫 + 執(zhí)行 | rwx |
6 | 讀 + 寫 | rw - |
5 | 讀 + 執(zhí)行 | r - w |
4 | 只讀 | r - - |
3 | 寫 + 執(zhí)行 | - wx |
2 | 只寫 | - w - |
1 | 只執(zhí)行 | - -x |
0 | 無(wú) | - - - |
- 舉例:
- chmod 777 bootStart.sh ---- 為所有用戶授予讀、寫、執(zhí)行權(quán)限
- chmod 755 bootstart.sh ---- 為文件擁有者授予讀、寫、執(zhí)行權(quán)限,同組用戶和其他用戶授予讀、執(zhí)行權(quán)限
- chmod 210 boot5tat.h ---- 為文件擁有者授予寫權(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é)得作者寫的還不錯(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ù)端證書方式(keytool和openssl)
介紹了通過(guò)keytool和openssl工具來(lái)查看服務(wù)器端的SSL/TLS證書,包括直接抓取服務(wù)器證書和下載證書文件的方法,詳細(xì)說(shuō)明了每種方法的操作步驟和輸出結(jié)果,幫助用戶驗(yàn)證證書有效性和進(jìn)行信任鏈驗(yàn)證2024-10-10Linux內(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-02Ubuntu 12.04 64位 對(duì)Python 源代碼編譯詳解
這篇文章主要介紹了Ubuntu 12.04 64位 對(duì)Python 源代碼編譯的相關(guān)資料,需要的朋友可以參考下2017-01-01linux下查看yum/rpm/dpkg某軟件是否已安裝的方法
這篇文章主要介紹了在linux下查看yum/rpm/dpkg某軟件是否已安裝的方法,文中給出了詳細(xì)的示例代碼,對(duì)大家具有一定的參考價(jià)值,需要的朋友們下面來(lái)一起看看吧。2017-03-03ubuntu 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-02CentOS 7 中firewall-cmd命令詳細(xì)介紹
這篇文章主要介紹了 CentOS 7 中firewall-cmd命令詳細(xì)介紹的相關(guān)資料,這里對(duì)CentOS 7的firewall-cmd命令一一介紹,希望能幫助開(kāi)始使用的朋友,需要的朋友可以參考下2016-11-11Linux使用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