CentOS 目錄結(jié)構(gòu)
節(jié)選自 https://blog.csdn.net/qq_33858250/article/details/81839619

CentOS的目錄大體上可分為四類(lèi):管理類(lèi)、用戶(hù)類(lèi)、應(yīng)用程序類(lèi)、信息類(lèi)文件目錄。
管理類(lèi)
- /boot
linux的內(nèi)核及引導(dǎo)系統(tǒng)程序所需要的文件目錄 - /bin
存放標(biāo)準(zhǔn) linux 的工具 - /sbin
大多是涉及系統(tǒng)管理的命令的存放,是超級(jí)權(quán)限用戶(hù)root的可執(zhí)行命令存放地,普通用戶(hù)無(wú)權(quán)限執(zhí)行這個(gè)目錄下的命令 - /var
這個(gè)目錄的內(nèi)容是經(jīng)常變動(dòng)的,用來(lái)存儲(chǔ)經(jīng)常被修改的文件,如日志、數(shù)據(jù)文件、郵箱等 - /etc
主要存放系統(tǒng)配置方面的文件 - /dev
主要存放與設(shè)備有關(guān)的文件 - /mnt
這個(gè)目錄一般是用于存放掛載儲(chǔ)存設(shè)備的掛載目錄的,比如有cdrom 等目錄??梢詤⒖?etc/fstab的定義
用戶(hù)類(lèi)
- /root
系統(tǒng)管理員目錄 - /home
主要存放個(gè)人數(shù)據(jù)
應(yīng)用程序類(lèi)
- /lib
該目錄用來(lái)存放系統(tǒng)動(dòng)態(tài)鏈接庫(kù),幾乎所有的應(yīng)用程序都會(huì)用到該目錄下的共享庫(kù) - /tmp
臨時(shí)目錄,有些linux會(huì)定期清理 - /usr
存放一些不適合放在/bin 或 /etc 目錄下的額外工具,如個(gè)人安裝的程序或工具 - /usr/local
主要存放那些手動(dòng)安裝的軟件, - /usr/bin
用于存放程序 - /usr/share
用于存放一些共享數(shù)據(jù) - /usr/lib
存放一些不能直接運(yùn)行,但卻是許多程序運(yùn)行所必需的一些函數(shù)庫(kù)文件 - /opt
主要存放可選程序,直接刪除程序不影響系統(tǒng)其設(shè)置。安裝到/opt目錄下的程序,它所有的數(shù)據(jù)、庫(kù)文件等等都是放在同個(gè)目錄下面
信息類(lèi)
- /lost+found
在ext2或ext3文件系統(tǒng)中,當(dāng)系統(tǒng)意外崩潰或機(jī)器意外關(guān)機(jī),而產(chǎn)生一些文件碎片放在這里。但當(dāng)突然停電、或者非正常關(guān)機(jī)后,有些文件就臨時(shí)存放在這里。 - /proc
操作系統(tǒng)運(yùn)行時(shí),進(jìn)程信息及內(nèi)核信息(比如cpu、硬盤(pán)分區(qū)、內(nèi)存信息等)存放在這里
Java環(huán)境
安裝JDK
官網(wǎng) https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
在官網(wǎng)下載需要的jdk版本


這樣獲取的下載地址有驗(yàn)證信息,才能夠正確下載
cd /usr/local/
創(chuàng)建下載目錄
mkdir download

開(kāi)始下載
mv jdk-8u211-linux-x64.tar.gz\?AuthParam\=1560506772_1dbba8573bc6a8588bd51d95349718d4 jdk-8u211-linux-x64.tar.gz
重命名文件
tar -zxvf jdk-8u211-linux-x64.tar.gz -C /usr/local/
解壓到

環(huán)境變量
vi /etc/profile
末尾添加
export JAVA_HOME=/usr/local/jdk1.8.0_211
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
保存退出
source /etc/profile 使生效

驗(yàn)證
發(fā)布
單模塊打包
在項(xiàng)目目錄下執(zhí)行
mvn clean package -Dmaven.test.skip=true
-Dmaven.test.skip=true 跳過(guò)單元測(cè)試
打包成功后會(huì)在項(xiàng)目根路徑下生成target目錄,依據(jù)pom文件設(shè)置的項(xiàng)目名<finalName>sell</finalName>生成jar包
服務(wù)器創(chuàng)建項(xiàng)目路徑
mkdir /opt/javaapps/
將項(xiàng)目jar文件復(fù)制到服務(wù)器
scp sell.jar root@10.2.26.161:/opt/javaapps/
多模塊打包
根項(xiàng)目下pom文件不要<build>標(biāo)簽
頂層模塊pom文件配置
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**.*</include>
<include>**/*.*</include><!-- i18n能讀取到 -->
<include>**/*/*.*</include>
</includes>
</resource>
</resources>
<!-- 為jar包取名 -->
<finalName>web</finalName>
<plugins>
<!-- 熱布署 -->
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<!--fork : 如果沒(méi)有該項(xiàng)配置,這個(gè)devtools不會(huì)起作用,即應(yīng)用不會(huì)restart -->
<fork>true</fork>
<mainClass>com.tianyi.ejiantong.EjiantongApplication</mainClass>
<layout>ZIP</layout>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal><!--可以把依賴(lài)的包都打包到生成的Jar包中-->
</goals>
<!--可以生成不含依賴(lài)包的不可執(zhí)行Jar包-->
<!-- configuration>
<classifier>exec</classifier>
</configuration> -->
</execution>
</executions>
</plugin>
</plugins>
</build>
底層被依賴(lài)模塊pom文件不要<build>標(biāo)簽

在根目錄下先clean刪除target目錄,再package生成target
分析:打包時(shí)會(huì)根據(jù)依賴(lài)關(guān)系逐層查找,所以需要在頂層模塊配置build。而根目錄下只是聲明,所以不配。
防火墻
firewall-cmd --zone=public --add-port=8080/tcp --permanent
--zone=public:表示作用域?yàn)楣驳模?/p>
--add-port=8080/tcp:添加tcp協(xié)議的端口8080;
--permanent:永久生效,如果沒(méi)有此參數(shù),則只能維持當(dāng)前服務(wù)生命周期內(nèi),重新啟動(dòng)后失效;
firewall-cmd --reload 重新加載配置
systemctl restart firewalld.service 重啟防火墻
80端口默認(rèn)未開(kāi)放
啟動(dòng)項(xiàng)目
nohup java -jar -Dserver.port=80 -Dspring.profiles.active=prod sell.jar > /dev/null 2>&1 &
-Dserver.port=80 開(kāi)啟的端口
-Dspring.profiles.active=prod 啟動(dòng)所使用的配置
nohup XXX > /dev/null 2>&1 & 讓進(jìn)程在后臺(tái)運(yùn)行