問題
目前創(chuàng)新互聯(lián)已為成百上千家的企業(yè)提供了網(wǎng)站建設(shè)、域名、虛擬空間、網(wǎng)站運營、企業(yè)網(wǎng)站設(shè)計、德清網(wǎng)站維護等服務(wù),公司將堅持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。
Linux下打包壓縮war、解壓war包和jar命令
解決
把project_a文件夾下的文件打包成project.war
-c 創(chuàng)建war包
-v 顯示過程信息
-f 指定 JAR 文件名,通常這個參數(shù)是必須的
-M 不產(chǎn)生所有項的清單(MANIFEST〕文件,此參數(shù)會忽略 -m 參數(shù)
-0 這個是阿拉伯數(shù)字,只打包不壓縮的意思
解壓到當前目錄
用jar命令,前提是要安裝dk。
把當前目錄下的所有文件打包成game.war
jar
-cvfM0
game.war
./
-c
創(chuàng)建war包
-v
顯示過程信息
-f
-M
-0
這個是阿拉伯數(shù)字,只打包不壓縮的意思
解壓game.war
jar
-xvf
game.war
解壓到當前目錄
1、IDEA 下,運行mvn clean,-- mvn package ,等到項目打包成功,在該項目文件位置找到target 下的 demo.war,拷貝到tomcat8.5/webapps目錄下。
2、訪問路徑:localhost:8080/${打包文件名}/請求url
3、如何在訪問時 去掉war包名?
3.1、 Tomcat的默認根目錄是ROOT,實際上ROOT這個項目在實際生產(chǎn)環(huán)境是沒有用的,所以我們可以用我們的項目覆蓋ROOT項目
操作過程:
1.刪除ROOT下所有文件及文件夾
2.把我們項目的war包解壓后,項目目錄下的所有文件和子目錄都拷貝到ROOT目錄下即可
或者有更狠的一招:直接刪掉ROOT目錄,然后把我們的項目打包名稱改成ROOT.war,放到webapps下就行
3.2、Tomcat本身可以配置虛擬目錄。方法就是在Server.xml中EngineHost節(jié)點下加入Context信息。如我們可以配置Context path="/abc" docBase="D:\app\abc" ... /,那我們可以通過地址 來訪問我們放在D:\app\下面的abc項目。我們可以把這個path="/abc"修改為path=""。意思就是把abc映射到根目錄,訪問路徑就會變成 。
操作過程:
按照配置虛擬目錄的方式,在EngineHost下添加一個Context節(jié)點,具體配置如下:
linux解壓war包的命令
網(wǎng)上很多人說用jar包解壓,但jar命令解壓時不能指定目錄,推薦使用unzip解壓war包。
unzip -d 指定目錄
[root@oracle upload]# unzip -oq common.war -d common
命令名: unzip
功 能說明:解壓縮zip文 件
語法:unzip [-cflptuvz][-agCjLMnoqsVX][-P 密 碼][.zip文 件][文件][-d 目錄][-x 文件] 或 unzip [-Z]
補充說明:unzip為.zip壓縮文件的解壓縮程序。
參數(shù):
-c 將 解壓縮的結(jié)果顯示到屏幕上,并對字符做適當?shù)霓D(zhuǎn)換。
-f 更 新現(xiàn)有的文件。
-l 顯 示壓縮文件內(nèi)所包含的文件。
-p 與-c參數(shù)類似,會將解壓縮的結(jié)果顯示到屏幕上,但不會執(zhí)行任 何的轉(zhuǎn)換。
-t 檢 查壓縮文件是否正確。,但不解壓。
-u 與-f參數(shù)類似,但是除了更新現(xiàn)有的文件外,也會將壓縮文件中 的其他文件解壓縮到目錄中。
-v 執(zhí) 行是時顯示詳細的信息。或查看壓縮文件目錄,但不解壓。
-z 僅 顯示壓縮文件的備注文字。
-a 對 文本文件進行必要的字符轉(zhuǎn)換。
-b 不 要對文本文件進行字符轉(zhuǎn)換。
-C 壓 縮文件中的文件名稱區(qū)分大小寫。
-j 不 處理壓縮文件中原有的目錄路徑。
-L 將 壓縮文件中的全部文件名改為小寫。
-M 將 輸出結(jié)果送到more程 序處理。
-n 解 壓縮時不要覆蓋原有的文件。
-o 不 必先詢問用戶,unzip執(zhí) 行后覆蓋原有文件。
-P密碼 使 用zip的密碼選項。
-q 執(zhí) 行時不顯示任何信息。
-s 將 文件名中的空白字符轉(zhuǎn)換為底線字符。
-V 保 留VMS的文件版本信 息。
-X 解 壓縮時同時回存文件原來的UID/GID。
[.zip文件] 指定.zip壓縮文件。
[文件] 指定 要處理.zip壓縮文 件中的哪些文件。
-d目錄 指 定文件解壓縮后所要存儲的目錄。
-x文件 指 定不要處理.zip壓 縮文件中的哪些文件。
-Z unzip -Z等 于執(zhí)行zipinfo指 令。
命令名: zip
功能說明:壓縮文件。
語法:zip [-AcdDfFghjJKlLmoqrSTuvVwXyz$][-b 工 作目錄][-ll][-n 字 尾字符串][-t 日 期時間][-壓 縮效率][壓 縮文件][文件...][-i 范本樣式][-x 范本樣式]
補充說明:zip是個使用廣泛的壓縮程序,文件經(jīng)它壓縮后會另外產(chǎn)生具 有".zip"擴展名 的壓縮文件。
參數(shù):
-A 調(diào) 整可執(zhí)行的自動解壓縮文件。
-b工作目錄 指 定暫時存放文件的目錄。
-c 替 每個被壓縮的文件加上注釋。
-d 從 壓縮文件內(nèi)刪除指定的文件。
-D 壓 縮文件內(nèi)不建立目錄名稱。
-f 此 參數(shù)的效果和指定"-u"參 數(shù)類似,但不僅更新既有文件,如果某些文件原本不存在于壓縮文件內(nèi),使用本參數(shù)會一并將其加入壓縮文件中。
-F 嘗 試修復(fù)已損壞的壓縮文件。
-g 將 文件壓縮后附加在既有的壓縮文件之后,而非另行建立新的壓縮文件。
-h 在 線幫助。
-i范本樣式 只 壓縮符合條件的文件。
-j 只 保存文件名稱及其內(nèi)容,而不存放任何目錄名稱。
-J 刪 除壓縮文件前面不必要的數(shù)據(jù)。
-k 使 用MS-DOS兼容格 式的文件名稱。
-l 壓 縮文件時,把LF字符 置換成LF+CR字 符。
-ll 壓 縮文件時,把LF+CR字 符置換成LF字符。
-L 顯 示版權(quán)信息。
-m 將 文件壓縮并加入壓縮文件后,刪除原始文件,即把文件移到壓縮文件中。
-n字尾字符串 不 壓縮具有特定字尾字符串的文件。
-o 以 壓縮文件內(nèi)擁有最新更改時間的文件為準,將壓縮文件的更改時間設(shè)成和該文件相同。
-q 不顯 示指令執(zhí)行過程。
-r 遞 歸處理,將指定目錄下的所有文件和子目錄一并處理。
-S 包 含系統(tǒng)和隱藏文件。
-t日期時間 把 壓縮文件的日期設(shè)成指定的日期。
-T 檢 查備份文件內(nèi)的每個文件是否正確無誤。
-u 更 換較新的文件到壓縮文件內(nèi)。
-v 顯 示指令執(zhí)行過程或顯示版本信息。
-V 保 存VMS操作系統(tǒng)的文 件屬性。
-w 在 文件名稱里假如版本編號,本參數(shù)僅在VMS操 作系統(tǒng)下有效。
-x范本樣式 壓 縮時排除符合條件的文件。
-X 不 保存額外的文件屬性。
-y 直 接保存符號連接,而非該連接所指向的文件,本參數(shù)僅在UNIX之 類的系統(tǒng)下有效。
-z 替 壓縮文件加上注釋。
-$ 保 存第一個被壓縮文件所在磁盤的卷冊名稱。
-壓縮效率 壓 縮效率是一個介于1-9的 數(shù)值。
例. 將當前目錄下的所有文件和文件夾全部壓縮成test.zip文件,-r表示遞歸壓縮子目錄下所有文件
[root@mysql test]# zip -r test.zip ./*
jar命令
壓縮war包:
把當前目錄下的所有文件打包成game.war
jar -cvfM0 game.war ./
-c 創(chuàng)建war包
-v 顯示過程信息
-f
-M
-0 這個是阿拉伯數(shù)字,只打包不壓縮的意思
解壓war包
jar -xvf game.war
解壓到當前目錄
scp -P111 test@192.168.1.5:/home/war.zip . 表示把192.168.1.5上的war.zip文件拷貝到當前目錄,其中111為1.5這臺服務(wù)器的端口號,test為1.5服務(wù)器的用戶名,注意最后有個空格加"."表示放到當前目錄下
scp -P112 war.zip test@192.168.1.6:/home/ 表示把當前目錄下的war.zip發(fā)送到192.168.1.6上的home文件下,test為1.6上的用戶
一、創(chuàng)建linux維護用戶
登錄root用戶
創(chuàng)建新用戶
useradd 新用戶名
設(shè)置用戶密碼
passwd 新用戶密碼
二、安裝jdk和配置環(huán)境變量
建議在root用戶下直接安裝jdk,并直接配置環(huán)境變量,同時給非root用戶設(shè)置讀和執(zhí)行權(quán)限
解壓包
tar xvf jdk包名.tar
配置全局變量
編輯/etc/profile文件
vi /etc/profile
按I鍵,切換成編輯模式。
在文件未加入一下配置
export JAVA_HOME=jdk的解壓文件目錄
export JRE_HOME=jdk的解壓文件目錄/jre
export?CLASSPATH=.:${JAVA_HOME}/lib:${?JRE_HOME}/lib:$CLASSPATH
export JAVA_PATH=${JAVA_HOME}/bin:${?JRE_HOME}/bin
export PATH=$PATH:${JAVA_PATH}
保存并退出
Esc ??
:wq
重載配置文件使其生效
source /etc/profile
檢查是否安裝成功
Javac
Java version
權(quán)限修改
讀4寫2執(zhí)行1,順序所有者、組成員、其他用戶
Chomd ?755 ?jdk的解壓文件目錄
三、安裝tomcat
安裝tomcat和放入war包使用非root的維護用戶
如果使用root安裝的話記得設(shè)置權(quán)限。( chomd -r 外層文件目錄 )
su - 用戶名
1、解壓包
tar ?xvf ?tomcat包名.tar
2、將war包放入tomcat/webapps目錄下
3、Tomcat啟動服務(wù)和停止服務(wù)
查看進程
ps -ef | grep java
啟動應(yīng)用
Tomcat bin目錄下.startup.sh
停止應(yīng)用
建議使用
Kill -9 進程號
注:解壓出應(yīng)用文件后,注意配置信息的修改
四、IBM MQ部署 (7.5之后的版本)
(以下是使用9.0版本的正確部署命令)
一、 卸載舊版本IBM MQ (可選)
因為部署環(huán)境沒有安裝過mq,卸載這部分命令我沒有親自測試過
設(shè)置環(huán)境
以用戶身份登錄到組mqm,找到mq的安裝位置 /opt/mqm
source ./setmqenv -s
查看隊列管理器的狀態(tài)
dspmq -o installation
停止與要卸載的安裝關(guān)聯(lián)的所有正在運行的隊列管理器
endmqm SXRECV
停止與隊列管理器關(guān)聯(lián)的所有偵聽器。
endmqlsr -m SXRECV
查看系統(tǒng)上當前安裝的軟件包(組件)
sudo rpm -qa | grep MQSeries
列出軟件包并一次性卸載
sudo rpm -qa | grep MQSeries | xargs rpm -ev
再將對應(yīng)的用戶及安裝目錄給刪除
rm -rf /opt/mqm
userdel -r mqm
檢查MQ license
license文件在安裝目錄中 /opt/mqm/lib 可以找到
amqtcert.lic - is a trial license
amqbcert.lic - is a beta license
amqpcert.lic - is the production license
——————————————————————————————————————
二、安裝新版本ibm mq
解壓,解壓文件都在MQServer中
tar –xzvf IBM_MQ_9.1.5_LINUX_X86-64.tar.gz
進入MQServer文件夾中:
cd MQServer/
運行MQ許可證程序
./mqlicense.sh
安裝WebSphere MQ for Linux服務(wù)器(Runtime、SDK 和 Server 軟件包):
rpm -U MQSeriesRuntime-9.1.5-0.x86_64.rpm
rpm -U MQSeriesSDK-9.1.5-0.x86_64.rpm
rpm -U MQSeriesServer-9.1.5-0.x86_64.rpm
安裝WebSphere MQ for Linux客戶機:
rpm -U MQSeriesClient-9.0.0-0.x86_64.rpm
安裝WebSphere MQ樣本程序:
rpm -U MQSeriesSamples-9.0.0-0.x86_64.rpm
創(chuàng)建組和用戶
安裝過程創(chuàng)建了一個名為mqm的用戶和一個同樣名為 mqm 的組。設(shè)置一個密碼來解鎖。
passwd mqm
——————————————————————————————————————
三、 配置
(這部分隊列管理器、通道、隊列等根據(jù)實際情況自行配置)
切換用戶:
su mqm
創(chuàng)建隊列管理器
使用crtmqm命令來創(chuàng)建一個名為 SXRECV
的隊列管理器。我們把它作為缺省隊列,并且將不在創(chuàng)建時指定死信隊列。然后使用strmqm命令啟動隊列管理器。
crtmqm -q ?SXRECV
strmqm ?SXRECV
——————
如果執(zhí)行crtmqm命令時提示
-bash-3.2$ crtmqm
-bash: crtmqm: command not found
find / -name crtmqm
則需要配置mqm用戶的環(huán)境變量,編輯如下文件,并添加下面的內(nèi)容,如下:
第一種方法:相對第二種較安全僅對mqm用戶有效
方法一:
(1) -bash-3.2$ vi /var/mqm/.bash_profile --有可能會在文件夾下看不到這個文件,通過編輯即可看到
PATH=$PATH:/opt/mqm/samp/bin:/opt/mqm/bin:bin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/X11R6/bin
(2)執(zhí)行“.”命令,使這個文件生效
-bash-3.2$ source ?.bash_profile
(3)再次嘗試實行crtmqm或是dspmqm命令,即可發(fā)現(xiàn)已經(jīng)生效。
方法二:
( 1)
su ?root
[if !supportLists](2)[endif]
vim /etc/profile
[if !supportLists](3)[endif] 在最后面加上:
PATH=$PATH:/opt/mqm/samp/bin:/opt/mqm/bin:bin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/bin
( 4)關(guān)閉遠程終端重新打開,無需重啟服務(wù)器
——————
運行隊列管理器
runmqsc SXRECV
創(chuàng)建通道和隊列
DEFINE QLOCAL (XYDATA) REPLACE USAGE (NORMAL) DEFPSIST (YES) MAXDEPTH (300000) DESCR('興業(yè)銀行')
DEFINE QLOCAL (XYTRANS) REPLACE USAGE (XMITQ) DEFPSIST (YES) MAXDEPTH (300000) DESCR('興業(yè)銀行')
DEFINE QREMOTE (XYACK) REPLACE DEFPSIST (YES) RQMNAME (SXSEND) ?RNAME (XYACK) XMITQ (XYTRANS) DESCR('XXXX')
DEFINE CHANNEL (XYDATA) CHLTYPE (RCVR) TRPTYPE (TCP) REPLACE DESCR('XXXX')
DEFINE CHANNEL (XYACK) CHLTYPE (SDR) CONNAME ('166.1.1.8(2214)') XMITQ (XYTRANS) TRPTYPE (TCP) DISCINT (0) CONVERT (NO) SHORTRTY (30) SHORTTMR (10) LONGRTY (999999999) LONGTMR (20) REPLACE DESCR('XXXX')
DEFINE CHANNEL (SVRCONN) CHLTYPE (SVRCONN) MCAUSER('mqm')
創(chuàng)建監(jiān)聽
DEFINE LISTENER (RECLISTENER) TRPTYPE (TCP) CONTROL(QMGR) PORT (2214)
啟動監(jiān)聽
start LISTENER(RECLISTENER)
啟動通道
start channel(SVRCONN)
start channel(XYDATA)
start channel(XYACK)
———————————————————————————————————————————————————
四、2035錯誤碼 說明
如果程序連接mq報錯2035,則需要對權(quán)限認證做設(shè)置,則進行以此操作
1、
ALTER QMGR CHLAUTH(DISABLED)
2、
ALTER CHL(通道名) CHLTYPE(SVRCONN) MCAUSER('mqm')
3、
ALTER AUTHINFO(SYSTEM.DEFAULT.AUTHINFO.IDPWOS) AUTHTYPE(IDPWOS) CHCKCLNT(OPTIONAL)
或者直接將連接認證選項置為空,將其完全關(guān)閉,指令如下:
ALTER QMGR CONNAUTH('')
在執(zhí)行完上述兩條命令中的任一條后,都需要刷新連接認證的緩存,指令如下:
REFRESH SECURITY TYPE(CONNAUTH)
五、mq操作命令
一、MQ的啟動與停止
1、MQ的啟動
strmqm QMgrName
如果啟動默認隊列管理器,strmqm后可以忽略隊列管理器名稱。
2、MQ的關(guān)閉
endmqm?-i?QMgrName
停止mq
二、MQ運行狀態(tài)查看與常用操作
1、 查看隊列管理器運行狀態(tài)
su mqm
執(zhí)行如下命令檢查隊列管理器運行狀態(tài):dspmq顯示結(jié)果中QMNAME表示MQ隊列管理器的名稱,STATUS表示當前運行狀態(tài)。運行狀態(tài)有如下幾種:Starting正在啟動Running正在運行Ending正在停止Ended normally已經(jīng)正常終止Ended immediately已經(jīng)立即終止Ended preemtively已經(jīng)強制終止Ended unexpectively異常終止
注意:停止MQ后必須使用dspmq命令進行狀態(tài)檢查
2、查看通道運行狀態(tài)與啟停通道
runmqsc
dis chl(*);查看所有通道定義
dis chs(*);查看所有通道狀態(tài),如果沒有查詢到通道狀態(tài),或報錯AMQ8420: Channel Status not found,請啟動通道
dis chs(ChannelName); 查看通道ChannelName的狀態(tài)
通道狀態(tài)有如下幾種:
STARTING正在啟動BINDING正在綁定INITIALIZING正在初始化RUNNING正常STOPPING?正在停止RETRYING重試PAUSED等待STOPPED已停止REQUESTING請求
start?chl(ChannelName);啟動通道
stop?chl(ChannelName);停止通道
* 重置通道
reset channel(ChannelName);?重置通道序號。當本地與其他MQ隊列管理器的通道無法正常啟動的情況,檢查日志發(fā)現(xiàn)是通道序號不一致,此時就需要先停止發(fā)送方通道,清空隊列深度并在發(fā)送方和接收方進行通道計數(shù)的重置,重置后啟動通道即可恢復(fù)通訊。
注意:重置成功mq序列號一般相同或相差1
3、查看通道監(jiān)聽狀態(tài)與啟停監(jiān)聽
runmqsc
dis listner(*);查看通道監(jiān)聽定義
dis lsstatu(listnerName);查看監(jiān)聽狀態(tài)
start?lstr(listnerName); 啟動監(jiān)聽
stop?lstr(listnerName); 停止監(jiān)聽?
4、查看隊列深度
runmqsc
dis q(*);查看所有各類隊列的屬性
dis?qlocal(QName);查看所有本地隊列的屬性
隊列深度屬性為:CURDEPTH
查看隊列深度display ql('隊列名') ?curdepth
*清空隊列深度
清空隊列深度
clear ql(‘隊列名’)
三、MQ發(fā)送和接收消息
su mqm
發(fā)送消息
amqsput ?隊列名 ?隊列管理器
獲取消息
amqsget ?隊列名 ?隊列管理器
可通過配合查看隊列深度命令,完成mq的聯(lián)調(diào)
六、其他維護中常用linux命令
1、測試端口連接
telnet ip port
2、查看已啟動的端口
netstat -an | grep 端口號
3、查看應(yīng)用進程
ps -ef |grep java
4、修改權(quán)限
chomd ?XXX(對應(yīng)的權(quán)限) ?文件目錄
5、修改文件或目錄下所有文件所有者和組
Chomd -R 用戶名:組名 ?文件目錄
6、查看目錄內(nèi)容
ls 或者ls -l (簡寫ll)
7、查看文件輸出
cat 目錄/文件名
或者
Vi 目錄/文件名 按i可進入編輯
按 G 到文檔末尾
按 gg 到文件首行
不保存退出
Esc ??:q!
保存退出
Esc ??:wq
vi 進入文檔文檔后查找關(guān)鍵字
Esc 進入命令行
/關(guān)鍵字
按n向下繼續(xù)查找
按N向上繼續(xù)查找
8、殺進程
Kill -9 進程號
9、復(fù)制
cp -r 源目錄 ?目標目錄
10、移動
mv ?-i 源文件或目錄 目標文件或目錄
11、刪除
rm -R 文件目錄
12、 切換工作目錄
cd ?相對路徑或絕對路徑
~也表示為 home 目錄 的意思, . 則是表示目前所在的目錄, .. 則表示目前目錄位置的上一層目錄。