一文帶你快速了解如何在Linux上部署項目
后端環(huán)境要搭好,如jdk、mysql、tomcat、maven、git等
一、手工部署項目
1.在IDEA中開發(fā)SpringBoot項目并打成jar包
2. 將jar包上傳到Linux服務(wù)器
mkdir /usr/local/app ---- 創(chuàng)建目錄,將項目jar包放到此目錄
3. 輸入指令啟動SpringBoot程序
4. 檢查防火墻,確保80端口(項目端口)對外開放,訪問SpringBoot項目
5. 在windows訪問項目
6. 改為后臺運行SpringBoot程序,并將日志輸出到日志文件 目前程序運行的問題 :
線上程序不會采用控制臺霸屏的形式運行程序,而是將程序在后臺運行
線上程序不會將日志輸出到控制臺,而是輸出到日志文件,方便運維查閱信息
- nohup命令
nohup 命令 :
英文全稱 no hang up (不掛起),用于不掛斷地運行指定命令,退出終端不會影響程序的運行
語法格式 :
nohup Command [ Arg …] [&]
參數(shù)說明 :
Command :要執(zhí)行的命念
Arg :一些參數(shù),可以指定輸出文件
& : 讓命令在后臺運行
舉例 :
nohup java -jar boot工程.jar &> hello.log & ---- 后臺運行java -jar命令,并將日志輸出到reboot.log文件
7. 停止SpringBoot程序(殺進程)
二、通過Shell腳本自動部署項目
1. 在Linux中安裝Git
Git安裝指令
- yum list git ---- 列出git安裝包
- yum install git ---- 在線安裝git
使用Git克隆遠(yuǎn)程倉庫代碼
- 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之間沒有空格,此處是由于MD語法顯示問題空一格
加載資源,查看maven版本
source /etc/profile
mvn -version
vim /usr/local/apache-maven-3.5.4/conf/settings.xml ---- 設(shè)置一下 setting 文件,指定 maven 本地倉庫的目錄(repo目錄需要自己創(chuàng)建),修改配置文件內(nèi)容如下
< localRepository>/usr/local/repo</ localRepository>
注:< localRepository> 中的 < 和 l 以及 </ localRepository> 中的 / 和 l 之間沒有空格,此處是由于MD語法問題空一格
3. 編寫Shell腳本 (拉取代碼、編譯、打包、啟動
- Shell 腳本簡介
Shell腳本 (shell script) ,是一種Linux系統(tǒng)中的腳本程序。使用Shel腳本編程跟Javascript、Java編程一樣,只要有一個能編寫代碼的文本編輯器和一個能解釋執(zhí)行的腳本解釋器就可以了
- 編寫Shell 腳本
#!/bin/sh echo ================================= echo 自動化部署腳本啟動 echo ================================= echo 停止原來運行中的工程 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倉庫拉取最新代碼 cd /usr/local/re_boot echo 開始從Git倉庫拉取最新代碼 git pull echo 代碼拉取完成 echo 開始打包 output=`mvn clean package -Dmaven.test.skip=true` cd target echo 啟動項目 nohup java -jar re_boot-1.0-SNAPSHOT.jar &> re_boot.log & echo 項目啟動完成
4. 為用戶授予執(zhí)行shell腳本的權(quán)限
1. 權(quán)限說明
- chmod (英文全拼: change mode) 命令是控制用戶對文件的權(quán)限的命令
- Linux中的權(quán)限分為: 讀®、寫(w)、執(zhí)行(x)三種權(quán)限
- Linux的文件調(diào)用權(quán)限分為三級:文件所有者 (wner) 、用戶組 (Group) 、其它用戶 (Other Users)
- 只有文件的所有者和超級用戶可以修改文件或目錄的權(quán)限
- 要執(zhí)行Shell腳本需要有對此腳本文件的執(zhí)行權(quán)限,如果沒有則不能執(zhí)行
2. chmod命令簡介
- chmod命令可以使用八進制數(shù)來指定權(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 | 無 | - - - |
- 舉例:
- 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)限,其他用戶沒有任何權(quán)限
- 注意 :三位數(shù)字分別代表不同用戶的權(quán)限
- 第1位表示文件擁有者的權(quán)限
- 第2位表示同組用戶的權(quán)限
- 第3位表示其他用戶的權(quán)限
5. 執(zhí)行Shell腳本
總結(jié)
歡迎各位留言交流以及批評指正,如果文章對您有幫助或者覺得作者寫的還不錯可以點一下關(guān)注,點贊,收藏支持一下。
以上就是一文帶你快速了解如何在Linux上部署項目的詳細(xì)內(nèi)容,更多關(guān)于在Linux上部署項目的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
linux查看服務(wù)端證書方式(keytool和openssl)
介紹了通過keytool和openssl工具來查看服務(wù)器端的SSL/TLS證書,包括直接抓取服務(wù)器證書和下載證書文件的方法,詳細(xì)說明了每種方法的操作步驟和輸出結(jié)果,幫助用戶驗證證書有效性和進行信任鏈驗證2024-10-10Linux內(nèi)核設(shè)備驅(qū)動之虛擬文件系統(tǒng)筆記整理
今天小編就為大家分享一篇關(guān)于Linux內(nèi)核設(shè)備驅(qū)動之虛擬文件系統(tǒng)筆記整理,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2018-12-12詳解Linux(centos7)下安裝OpenSSL安裝圖文方法
這篇文章主要介紹了詳解Linux(centos7)下安裝OpenSSL安裝圖文方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-02-02Ubuntu 12.04 64位 對Python 源代碼編譯詳解
這篇文章主要介紹了Ubuntu 12.04 64位 對Python 源代碼編譯的相關(guān)資料,需要的朋友可以參考下2017-01-01linux下查看yum/rpm/dpkg某軟件是否已安裝的方法
這篇文章主要介紹了在linux下查看yum/rpm/dpkg某軟件是否已安裝的方法,文中給出了詳細(xì)的示例代碼,對大家具有一定的參考價值,需要的朋友們下面來一起看看吧。2017-03-03ubuntu 16.04LTS 開機啟動自動更換壁紙的實現(xiàn)方法
下面小編就為大家分享一篇ubuntu 16.04LTS 開機啟動自動更換壁紙的實現(xiàn)方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-02-02CentOS 7 中firewall-cmd命令詳細(xì)介紹
這篇文章主要介紹了 CentOS 7 中firewall-cmd命令詳細(xì)介紹的相關(guān)資料,這里對CentOS 7的firewall-cmd命令一一介紹,希望能幫助開始使用的朋友,需要的朋友可以參考下2016-11-11Linux使用scp遠(yuǎn)程傳輸命令進行服務(wù)器文件互傳(阿里云服務(wù)器)
因為一臺服務(wù)器linux服務(wù)器總是出問題,也沒找到問題只好重新配置環(huán)境,那么就需要文件備份操作,既然是linux服務(wù)器可以使用scp命令傳輸文件了2016-09-09