快照功能:記錄當(dāng)前的硬盤(pán)的狀態(tài)。剛建快照時(shí)快照占用內(nèi)存為0,標(biāo)記了當(dāng)前硬盤(pán)的存儲(chǔ)狀態(tài)。當(dāng)虛擬機(jī)對(duì)快照標(biāo)記的內(nèi)容改寫(xiě)時(shí),會(huì)將改寫(xiě)的內(nèi)容存儲(chǔ)進(jìn)快照,與未改寫(xiě)的部分整合得到完整的快照。當(dāng)快照標(biāo)記的部分被完全改寫(xiě),那么快照存儲(chǔ)空間完整記錄了當(dāng)時(shí)拍攝時(shí)的內(nèi)存狀態(tài)。
讓客戶(hù)滿(mǎn)意是我們工作的目標(biāo),不斷超越客戶(hù)的期望值來(lái)自于我們對(duì)這個(gè)行業(yè)的熱愛(ài)。我們立志把好的技術(shù)通過(guò)有效、簡(jiǎn)單的方式提供給客戶(hù),將通過(guò)不懈努力成為客戶(hù)在信息化領(lǐng)域值得信任、有價(jià)值的長(zhǎng)期合作伙伴,公司提供的服務(wù)項(xiàng)目有:國(guó)際域名空間、雅安服務(wù)器托管、營(yíng)銷(xiāo)軟件、網(wǎng)站建設(shè)、贛榆網(wǎng)站維護(hù)、網(wǎng)站推廣。
參數(shù)形式
第一種:參數(shù)用一橫的說(shuō)明后面的參數(shù)是字符形式。
第二種:參數(shù)用兩橫的說(shuō)明后面的參數(shù)是單詞形式。
第三種:參數(shù)前有橫的是 System V風(fēng)格。
第四種:參數(shù)前沒(méi)有橫的是 BSD風(fēng)格。
cat、more、less、head、tail命令的比較:
cat命令可以一次顯示整個(gè)文件,如果文件比較大,使用不是很方便;
more命令可以讓屏幕在顯示滿(mǎn)一屏幕時(shí)暫停,按空格往前翻頁(yè),按b往后翻頁(yè)。
less命令也可以分頁(yè)顯示文件,和more命令的區(qū)別就在于: 支持上下鍵卷動(dòng)屏幕、查找;不需要在一開(kāi)始就讀取整個(gè)文件,打開(kāi)大文件時(shí)比more、vim更快。
head命令用于查看文件的前n行。
tail命令用于查看文件的后n行,加上-f命令,查看在線(xiàn)日志非常方便,可以打印最新增加的日志。
一般模式:
編輯模式:
命令模式:
編碼
多行操作(列編輯模式)
插入:ctrl+v進(jìn)入列編輯模式,上下移動(dòng)光標(biāo)選擇需要插入的位置,然后輸入大寫(xiě)I,輸入需要文本,最后按esc鍵退出,就會(huì)發(fā)現(xiàn)文本會(huì)在選擇的多行中插入。
刪除:ctrl+v進(jìn)入列編輯模式,上下移動(dòng)光標(biāo)選中需要?jiǎng)h除的部分,然后按d,就會(huì)刪除選中的內(nèi)容。
①head:顯示文件頭部?jī)?nèi)容
②tail:輸出文件尾部?jī)?nèi)容
注意:用vim和vi修改內(nèi)容會(huì)刪除源文件并生成新文件,所以tail -f會(huì)失效。需要用到
追加和覆蓋語(yǔ)句(或),才能被tail -f監(jiān)視到。
一般用于查看小文件
查看壓縮文件中的文本內(nèi)容
例:
①more:文件內(nèi)容分屏查看器
②less:分屏顯示文件內(nèi)容,效率比more高
1、簡(jiǎn)單讀取
運(yùn)行腳本如下
測(cè)試結(jié)果為:
2、-p 參數(shù),允許在 read 命令行中直接指定一個(gè)提示。
運(yùn)行腳本如下
測(cè)試結(jié)果為:
echo [選項(xiàng)] [輸出內(nèi)容] (輸出內(nèi)容到控制臺(tái))
輸出給定文本的sha256加密后的內(nèi)容
①顯示當(dāng)前時(shí)間信息
②顯示當(dāng)前時(shí)間年月日
③顯示當(dāng)前時(shí)間年月日時(shí)分秒
④顯示昨天
⑤顯示明天時(shí)間
⑥顯示上個(gè)月時(shí)間
需要注意的是取下個(gè)月的命令存在bug,執(zhí)行如下命令會(huì)得到21-10,但是正常應(yīng)該得到21-09,需要注意
date -d "2021-08-31 +1 month" +%y-%m
⑦修改系統(tǒng)時(shí)間
⑧獲取當(dāng)前時(shí)間戳
獲取秒時(shí)間戳: date +%s
獲取毫秒時(shí)間戳:$[ (date +%s%N) /1000000]
查看日歷
(1)查看當(dāng)前月的日歷
(2)查看2017年的日歷
例:
對(duì)比gzip/gunzip,zip/unzip可以壓縮文件和目錄且保留源文件。
①zip:壓縮
②unzip:解壓縮
只能壓縮文件不能壓縮目錄,不保留原來(lái)的文件。
gzip 文件 (只能將文件壓縮為*.gz文件)
gunzip 文件.gz (解壓縮文件命令)
例: crontab -e
(1)進(jìn)入crontab編輯界面。會(huì)打開(kāi)vim編輯你的工作。
(2)每隔1分鐘,向/root/bailongma.txt文件中添加一個(gè)11的數(shù)字
*/1 * * * * /bin/echo ”11” /root/bailongma.txt
(3)可以用tail -f 目標(biāo)文件來(lái)實(shí)施監(jiān)控追加的內(nèi)容
查看日志
可以用tail -f /var/log/cron.log觀察
Cron表達(dá)式見(jiàn)文章:
ls [選項(xiàng)] [目錄或是文件]
cd [參數(shù)]
例: cd -P $(dirname $p1) ; pwd 先跳轉(zhuǎn)到文件的所在目錄,再打印$p1文件的實(shí)際路徑
概述
①cp(copy):只能在本機(jī)中復(fù)制
②scp(secure copy):可以復(fù)制文件給遠(yuǎn)程主機(jī)
scp -r test.sh hxr@hadoop102:/root
③rsync(remote sync):功能與scp相同,但是不會(huì)改文件屬性
rsync -av test.sh test.sh hxr@hadoop102:/root
④nc(netcat):監(jiān)聽(tīng)端口,可以實(shí)現(xiàn)機(jī)器之間傳輸文件。
nc -lk 7777 (-l表示listen,-k表示keep)
強(qiáng)制覆蓋不提示的方法:\cp
例:scp -r test.sh hxr@bigdata1:/root
例:rsync -av test.sh hxr@bigdata1:/root
例:
nc -lp 10000 nc_test.txt
nc -w 1 hadoop102 nc_test.txt
遠(yuǎn)程登錄時(shí)默認(rèn)使用的私鑰為~/.ssh/id_rsa
生成密鑰對(duì)
將公鑰發(fā)送到本機(jī)
將密鑰發(fā)送到需要登錄到本機(jī)的服務(wù)器上
修改密鑰的權(quán)限
遠(yuǎn)程登陸
如果有多個(gè)節(jié)點(diǎn)需要遠(yuǎn)程登陸,可以在.ssh下創(chuàng)建config并輸入
再次登陸
①正向代理:
②反向代理:
所謂“反向代理”就是讓遠(yuǎn)端啟動(dòng)端口,把遠(yuǎn)端端口數(shù)據(jù)轉(zhuǎn)發(fā)到本地。
HostA 將自己可以訪(fǎng)問(wèn)的 HostB:PortB 暴露給外網(wǎng)服務(wù)器 HostC:PortC,在 HostA 上運(yùn)行:
那么鏈接 HostC:PortC 就相當(dāng)于鏈接 HostB:PortB。
使用時(shí)需修改 HostC 的 /etc/ssh/sshd_config 的一條配置如下,不然啟動(dòng)的進(jìn)程監(jiān)聽(tīng)的ip地址為127.0.0.1,即只有本機(jī)可以訪(fǎng)問(wèn)該端口。
相當(dāng)于內(nèi)網(wǎng)穿透,比如 HostA 和 HostB 是同一個(gè)內(nèi)網(wǎng)下的兩臺(tái)可以互相訪(fǎng)問(wèn)的機(jī)器,HostC是外網(wǎng)跳板機(jī),HostC不能訪(fǎng)問(wèn) HostA,但是 HostA 可以訪(fǎng)問(wèn) HostC。
那么通過(guò)在內(nèi)網(wǎng) HostA 上運(yùn)行 ssh -R 告訴 HostC,創(chuàng)建 PortC 端口監(jiān)聽(tīng),把該端口所有數(shù)據(jù)轉(zhuǎn)發(fā)給我(HostA),我會(huì)再轉(zhuǎn)發(fā)給同一個(gè)內(nèi)網(wǎng)下的 HostB:PortB。
同內(nèi)網(wǎng)下的 HostA/HostB 也可以是同一臺(tái)機(jī)器,換句話(huà)說(shuō)就是 內(nèi)網(wǎng) HostA 把自己可以訪(fǎng)問(wèn)的端口暴露給了外網(wǎng) HostC。
例: 比如在我的內(nèi)網(wǎng)機(jī)192.168.32.244上有一個(gè)RabbitMQ的客戶(hù)端,端口號(hào)為15672?,F(xiàn)在我希望在外網(wǎng)上訪(fǎng)問(wèn)固定ip的云服務(wù)器chenjie.asia的6009端口,通過(guò)跳板機(jī)192.168.32.243來(lái)轉(zhuǎn)發(fā)請(qǐng)求到192.168.32.244:15672,從而實(shí)現(xiàn)在外網(wǎng)訪(fǎng)問(wèn)內(nèi)網(wǎng)服務(wù)的功能,即內(nèi)網(wǎng)穿透。
①在192.168.32.244上啟動(dòng)RabbitMQ服務(wù)
②將chenjie.asia云服務(wù)器的私鑰復(fù)制到跳板機(jī)192.168.32.243的~/.ssh下,并重命名為id_rsa。通過(guò)如下命令看是否可以遠(yuǎn)程登陸到云服務(wù),可以登陸則進(jìn)行下一步。
③修改chenjie.asia服務(wù)器的ssh配置文件 /etc/ssh/sshd_config ,允許其他節(jié)點(diǎn)訪(fǎng)問(wèn)
然后重啟sshd服務(wù)
④在跳板機(jī)192.168.32.243啟動(dòng)ssh反向代理
這個(gè)進(jìn)程在關(guān)閉session時(shí)會(huì)停止,可以添加啟動(dòng)參數(shù) -CPfN
例:
以 root 身份執(zhí)行的程序有了所有特權(quán),這會(huì)帶來(lái)安全風(fēng)險(xiǎn)。Kernel 從 2.2 版本開(kāi)始,提供了 Capabilities 功能,它把特權(quán)劃分成不同單元,可以只授權(quán)程序所需的權(quán)限,而非所有特權(quán)。
例如:linux不允許非root賬號(hào)只用1024以下的端口,使用root啟動(dòng)命令nginx,會(huì)導(dǎo)致nginx權(quán)限過(guò)高太危險(xiǎn)。所以用setcap命令
sudo setcap cap_net_bind_service=+eip /bigdata/nginx/sbin/nginx
正確的關(guān)機(jī)流程為 :sync shutdown reboot halt
(1)sync (功能描述:將數(shù)據(jù)由內(nèi)存同步到硬盤(pán)中)
(2)halt (功能描述:關(guān)閉系統(tǒng),等同于shutdown -h now 和 poweroff)
(3)reboot (功能描述:就是重啟,等同于 shutdown -r now)
(4)shutdown [選項(xiàng)] [時(shí)間]
安裝
yum install -y telnet-server telnet
ls -i 顯示文件的節(jié)點(diǎn)號(hào)
find -inum 節(jié)點(diǎn)號(hào) -delete 刪除指定的節(jié)點(diǎn)即可刪除對(duì)應(yīng)的文件
啟動(dòng)一個(gè)服務(wù): systemctl start postfix.service
關(guān)閉一個(gè)服務(wù): systemctl stop postfix.service
重啟一個(gè)服務(wù): systemctl restart postfix.service
顯示一個(gè)服務(wù)的狀態(tài): systemctl status postfix.service
在開(kāi)機(jī)時(shí)啟用一個(gè)服務(wù): systemctl enable postfix.service
在開(kāi)機(jī)時(shí)禁用一個(gè)服務(wù): systemctl disable postfix.service
注:在enable的時(shí)候會(huì)打印出來(lái)該啟動(dòng)文件的位置
列出所有已經(jīng)安裝的服務(wù)及狀態(tài):
systemctl list-units
systemctl list-unit-files
查看服務(wù)列表狀態(tài):
systemctl list-units --type=service
查看服務(wù)是否開(kāi)機(jī)啟動(dòng): systemctl is-enabled postfix.service
查看已啟動(dòng)的服務(wù)列表: systemctl list-unit-files | grep enabled
查看啟動(dòng)失敗的服務(wù)列表: systemctl --failed
查看服務(wù)日志: journalctl -u postfix -n 10 -f
命令類(lèi)似systemctl,用于操作native service。
添加腳本為服務(wù)(需要指定啟動(dòng)級(jí)別和優(yōu)先級(jí)): chkconfig --add [腳本]
刪除服務(wù): chkconfig --del [腳本]
單獨(dú)查看某一服務(wù)是否開(kāi)機(jī)啟動(dòng)的命令 : chkconfig --list [服務(wù)名]
單獨(dú)開(kāi)啟某一服務(wù)的命令 : chkconfig [服務(wù)名] on
單獨(dú)關(guān)閉某一服務(wù)的命令: chkconfig [服務(wù)名] off
查看某一服務(wù)的狀態(tài): /etc/intd.d/[服務(wù)名] status
啟用服務(wù)就是在當(dāng)前"runlevel"的配置文件目錄 /etc/systemd/system/multi-user.target.wants 里,建立 /usr/lib/systemd/system 里面對(duì)應(yīng)服務(wù)配置文件的軟鏈接;禁用服務(wù)就是刪除此軟鏈接,添加服務(wù)就是添加軟連接。
su 用戶(hù)名稱(chēng) (切換用戶(hù),只能獲得用戶(hù)的執(zhí)行權(quán)限,不能獲得環(huán)境變量)
su - 用戶(hù)名稱(chēng) (切換到用戶(hù)并獲得該用戶(hù)的環(huán)境變量及執(zhí)行權(quán)限)
echo $PATH 打印環(huán)境變量
設(shè)置普通用戶(hù)具有root權(quán)限
修改 /etc/sudoers 文件,找到下面一行(91行),在root下面添加一行,如下 所示:
或者配置成采用sudo命令時(shí),不需要輸入密碼
修改完畢,現(xiàn)在可以用hxr 帳號(hào)登錄,然后用命令 sudo ,即可獲得root權(quán)限進(jìn)行操作。
以azkaban用戶(hù)執(zhí)行引號(hào)中的命令
gpasswd -d [username] [groupname] 將用戶(hù)從組中刪除
gpasswd -a [username] [groupname] 將用戶(hù)加入到組中
用戶(hù)組的管理涉及用戶(hù)組的添加、刪除和修改。組的增加、刪除和修改實(shí)際上就是對(duì) /etc/group文件的更新。
0首位表示類(lèi)型 - 代表文件 d 代表目錄 l 鏈接文檔(link file)
三種特殊權(quán)限suid、sgid、sticky
例子:
變更文件權(quán)限方式一
例:chmod u-x,o+x houge.txt
變更文件權(quán)限方式二
例:chmod -R 777 /mnt/ 修改整個(gè)文件夾的文件權(quán)限
在linux中創(chuàng)建文件或者目錄會(huì)有一個(gè)默認(rèn)權(quán)限的,這個(gè)默認(rèn)權(quán)限是由umask決定的(默認(rèn)為0022)。umask設(shè)置的是權(quán)限的“補(bǔ)碼”,而我們常用chmod設(shè)置的是文件權(quán)限碼。一般在/etc/profile 、~/.bashprofile 或者 ~/.profile中設(shè)置umask值。
umask計(jì)算
如root用戶(hù)的默認(rèn)umask為0022(第一個(gè)0 代表特殊權(quán)限位,這里先不考慮),創(chuàng)建的文件默認(rèn)權(quán)限是644(即默認(rèn)666掩上umask的022),創(chuàng)建的目錄是755(即默認(rèn)777掩上umask的022)。
對(duì)于root用戶(hù)的umask=022這個(gè)來(lái)說(shuō),777權(quán)限二進(jìn)制碼就是(111)(111)(111),022權(quán)限二進(jìn)制碼為(000)(010)(010)。
上面就是一個(gè)umask的正常計(jì)算過(guò)程,但是這樣實(shí)在是太麻煩了。我們使用如下的簡(jiǎn)單的方法快速計(jì)算。
上面的這個(gè)方法計(jì)算是非常方便的, 為何得到奇數(shù)要+1呢?
文件的最大權(quán)限是666,都是偶數(shù),你得到奇數(shù),說(shuō)明你的umask有奇數(shù)啊,讀為4,寫(xiě)為2,都是偶數(shù),說(shuō)明你有執(zhí)行權(quán)限的。
就按照上面的umask=023為例,在計(jì)算其他用戶(hù)權(quán)限的時(shí)候6-3=3 ,6是讀寫(xiě),3是寫(xiě)和執(zhí)行,其實(shí)應(yīng)該是讀寫(xiě)權(quán)限減去讀權(quán)限的得到寫(xiě)權(quán)限的,相當(dāng)于我們多減去了一個(gè)執(zhí)行權(quán)限。所以結(jié)果加1。
umask修改
如果想單獨(dú)修改某個(gè)文件夾的新建文件的權(quán)限,可以使用setfacl命令。
例:遞歸改變文件所有者和所有組 chown -R hxr:hxr /mnt
例:
開(kāi)篇之前奉上幾條黃金鏈接:
MQ參考文檔
MQ下載地址:
安裝的MQ軟件包為WMQv600Trial-x86_linux_2.tar.gz. 將WMQv600Trial-x86_linux_2.tar.gz解壓至某一目錄。
(1)執(zhí)行接受許可腳本: ./mqlicense.sh –accept 這個(gè)腳本是要安裝WebSphere MQ 軟件包的MQ許可程序. 至關(guān)重要,這個(gè)腳本沒(méi)有正確配置的話(huà)將導(dǎo)致MQ安裝失敗.–accept是不啟動(dòng)圖形直接接受許可。
(2) 安裝 WebSphere MQ for Linux 服務(wù)器:
[root@localhost mq]# rpm-ivh MQSeriesRuntime-6.0.0-0.i386.rpm
[root@localhost mq]# rpm-ivh MQSeriesSDK-6.0.0-0.i386.rpm
[root@localhost mq]# rpm-ivh MQSeriesServer-6.0.0-0.i386.rpm
注:安裝完成后,相關(guān)文件會(huì)被自動(dòng)安裝在/opt/mqm下,在安裝
MQSeriesRuntime-6.0.0-0.i386.rpm時(shí)候,安裝程序?yàn)橄到y(tǒng)自動(dòng)創(chuàng)建了一個(gè)mqm用戶(hù)和mqm組,安裝完畢后,需要使用該用戶(hù)來(lái)進(jìn)行MQ的配置。
(3) 安裝 WebSphere MQ for Linux 客戶(hù)端:
[root@localhost mq]# rpm-ivh MQSeriesClient-6.0.0-0.i386.rpm
(4) 安裝 WebSphere MQ 樣本程序(其中包括amqsput、amqsget、amqsgbr和amqsbcg等)
[root@localhost mq]# rpm-ivh MQSeriesSamples-6.0.0-0.i386.rpm 樣本程序安裝在/opt/mqm/samp/bin 中。
(5)安裝MQ其他軟件包
[root@localhost mq]# rpm-ivh MQSeriesMan-6.0.0-0.i386.rpm
[root@localhost mq]# rpm-ivh MQSeriesJava-6.0.0-0.i386.rpm
[root@localhost mq]# rpm-ivh IBMJava2-SDK-1.4.2-0.0.i386.rpm
上面最后一步安裝的是JDK運(yùn)行環(huán)境,如果已經(jīng)有相同或更高版本的JDK,不需要再安裝。 (6) 安裝過(guò)程創(chuàng)建了一個(gè)名為mqm 的用戶(hù)和一個(gè)同樣名為mqm 的組,此時(shí),新用戶(hù)是被鎖定的,必須設(shè)置一個(gè)密碼來(lái)解鎖,這樣才能正常使用該用戶(hù)。用passwd 命令:
[root@localhost mq]# passwd mqm 以上操作均在root用戶(hù)下操作,至此MQ6.0安裝結(jié)束。MQ的配置相關(guān)命令操作均在mqm用戶(hù)下。
注意:
如果執(zhí)行crtmqm命令時(shí)提示
-bash-3.2$ crtmqm
-bash: crtmqm: command not found
則需要配置mqm用戶(hù)的環(huán)境變量,編輯如下文件,并添加下面的內(nèi)容,如下:
第一種方法: 相對(duì)第二種較安全 僅對(duì) mqm用戶(hù)有效
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í)行“.”命令,使這個(gè)文件生效
-bash-3.2$ . .bash_profile
3)再次嘗試實(shí)行crtmqm或是dspmqm命令,即可發(fā)現(xiàn)已經(jīng)生效。
第二種方法:
1、su root
2、vim /etc/profile
3、在最后面加上:PATH=$PATH:/opt/mqm/samp/bin:/opt/mqm/bin:bin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/X11R6/bin
4、關(guān)閉遠(yuǎn)程終端重新打開(kāi),無(wú)需重啟服務(wù)器
5、ok了!!
了解更多開(kāi)源相關(guān),去LUPA社區(qū)看看吧。
遠(yuǎn)程隊(duì)列——qr
可以查看遠(yuǎn)端隊(duì)列管理器 和隊(duì)列名字
查看本地傳輸隊(duì)列XMITQ(SIMUtoIPSP)
傳輸隊(duì)列——ql
可以查看傳輸通道TRIGDATA(BANK.IPSP)
傳輸通道——chs
查看本地ip LOCLADDR(168.33.51.242)
查看通道類(lèi)型 CHLTYPE(SDR) CHLTYPE(RCVR)
遠(yuǎn)端服務(wù)器地址 端口conname
通道另一端的隊(duì)列管理器 RQMNAME
查看傳輸隊(duì)列XMITQ(SIMUtoIPSP)
--查看隊(duì)列狀態(tài)--dspmq
--查看通道--
dis chs(*)
--查看隊(duì)列深度--
display ql(Q_SVC2ADP_4_HTTP) curdepth
--清除隊(duì)列消息--
clear ql(Q_SVC2ADP_4_HTTP)
--查看CCSID--
display qmgr all
--修改CCSID--
ALTER QMGR [FORCE] CCSID(5488)
#查看是否已經(jīng)建立此通道
dis chl(*)
一、創(chuàng)建linux維護(hù)用戶(hù)
登錄root用戶(hù)
創(chuàng)建新用戶(hù)
useradd 新用戶(hù)名
設(shè)置用戶(hù)密碼
passwd 新用戶(hù)密碼
二、安裝jdk和配置環(huán)境變量
建議在root用戶(hù)下直接安裝jdk,并直接配置環(huán)境變量,同時(shí)給非root用戶(hù)設(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寫(xiě)2執(zhí)行1,順序所有者、組成員、其他用戶(hù)
Chomd ?755 ?jdk的解壓文件目錄
三、安裝tomcat
安裝tomcat和放入war包使用非root的維護(hù)用戶(hù)
如果使用root安裝的話(huà)記得設(shè)置權(quán)限。( chomd -r 外層文件目錄 )
su - 用戶(hù)名
1、解壓包
tar ?xvf ?tomcat包名.tar
2、將war包放入tomcat/webapps目錄下
3、Tomcat啟動(dòng)服務(wù)和停止服務(wù)
查看進(jìn)程
ps -ef | grep java
啟動(dòng)應(yīng)用
Tomcat bin目錄下.startup.sh
停止應(yīng)用
建議使用
Kill -9 進(jìn)程號(hào)
注:解壓出應(yīng)用文件后,注意配置信息的修改
四、IBM MQ部署 (7.5之后的版本)
(以下是使用9.0版本的正確部署命令)
一、 卸載舊版本IBM MQ (可選)
因?yàn)椴渴瓠h(huán)境沒(méi)有安裝過(guò)mq,卸載這部分命令我沒(méi)有親自測(cè)試過(guò)
設(shè)置環(huán)境
以用戶(hù)身份登錄到組mqm,找到mq的安裝位置 /opt/mqm
source ./setmqenv -s
查看隊(duì)列管理器的狀態(tài)
dspmq -o installation
停止與要卸載的安裝關(guān)聯(lián)的所有正在運(yùn)行的隊(duì)列管理器
endmqm SXRECV
停止與隊(duì)列管理器關(guān)聯(lián)的所有偵聽(tīng)器。
endmqlsr -m SXRECV
查看系統(tǒng)上當(dāng)前安裝的軟件包(組件)
sudo rpm -qa | grep MQSeries
列出軟件包并一次性卸載
sudo rpm -qa | grep MQSeries | xargs rpm -ev
再將對(duì)應(yīng)的用戶(hù)及安裝目錄給刪除
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
進(jìn)入MQServer文件夾中:
cd MQServer/
運(yùn)行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客戶(hù)機(jī):
rpm -U MQSeriesClient-9.0.0-0.x86_64.rpm
安裝WebSphere MQ樣本程序:
rpm -U MQSeriesSamples-9.0.0-0.x86_64.rpm
創(chuàng)建組和用戶(hù)
安裝過(guò)程創(chuàng)建了一個(gè)名為mqm的用戶(hù)和一個(gè)同樣名為 mqm 的組。設(shè)置一個(gè)密碼來(lái)解鎖。
passwd mqm
——————————————————————————————————————
三、 配置
(這部分隊(duì)列管理器、通道、隊(duì)列等根據(jù)實(shí)際情況自行配置)
切換用戶(hù):
su mqm
創(chuàng)建隊(duì)列管理器
使用crtmqm命令來(lái)創(chuàng)建一個(gè)名為 SXRECV
的隊(duì)列管理器。我們把它作為缺省隊(duì)列,并且將不在創(chuàng)建時(shí)指定死信隊(duì)列。然后使用strmqm命令啟動(dòng)隊(duì)列管理器。
crtmqm -q ?SXRECV
strmqm ?SXRECV
——————
如果執(zhí)行crtmqm命令時(shí)提示
-bash-3.2$ crtmqm
-bash: crtmqm: command not found
find / -name crtmqm
則需要配置mqm用戶(hù)的環(huán)境變量,編輯如下文件,并添加下面的內(nèi)容,如下:
第一種方法:相對(duì)第二種較安全僅對(duì)mqm用戶(hù)有效
方法一:
(1) -bash-3.2$ vi /var/mqm/.bash_profile --有可能會(huì)在文件夾下看不到這個(gè)文件,通過(guò)編輯即可看到
PATH=$PATH:/opt/mqm/samp/bin:/opt/mqm/bin:bin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/X11R6/bin
(2)執(zhí)行“.”命令,使這個(gè)文件生效
-bash-3.2$ source ?.bash_profile
(3)再次嘗試實(shí)行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)閉遠(yuǎn)程終端重新打開(kāi),無(wú)需重啟服務(wù)器
——————
運(yùn)行隊(duì)列管理器
runmqsc SXRECV
創(chuàng)建通道和隊(duì)列
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)聽(tīng)
DEFINE LISTENER (RECLISTENER) TRPTYPE (TCP) CONTROL(QMGR) PORT (2214)
啟動(dòng)監(jiān)聽(tīng)
start LISTENER(RECLISTENER)
啟動(dòng)通道
start channel(SVRCONN)
start channel(XYDATA)
start channel(XYACK)
———————————————————————————————————————————————————
四、2035錯(cuò)誤碼 說(shuō)明
如果程序連接mq報(bào)錯(cuò)2035,則需要對(duì)權(quán)限認(rèn)證做設(shè)置,則進(jìn)行以此操作
1、
ALTER QMGR CHLAUTH(DISABLED)
2、
ALTER CHL(通道名) CHLTYPE(SVRCONN) MCAUSER('mqm')
3、
ALTER AUTHINFO(SYSTEM.DEFAULT.AUTHINFO.IDPWOS) AUTHTYPE(IDPWOS) CHCKCLNT(OPTIONAL)
或者直接將連接認(rèn)證選項(xiàng)置為空,將其完全關(guān)閉,指令如下:
ALTER QMGR CONNAUTH('')
在執(zhí)行完上述兩條命令中的任一條后,都需要刷新連接認(rèn)證的緩存,指令如下:
REFRESH SECURITY TYPE(CONNAUTH)
五、mq操作命令
一、MQ的啟動(dòng)與停止
1、MQ的啟動(dòng)
strmqm QMgrName
如果啟動(dòng)默認(rèn)隊(duì)列管理器,strmqm后可以忽略隊(duì)列管理器名稱(chēng)。
2、MQ的關(guān)閉
endmqm?-i?QMgrName
停止mq
二、MQ運(yùn)行狀態(tài)查看與常用操作
1、 查看隊(duì)列管理器運(yùn)行狀態(tài)
su mqm
執(zhí)行如下命令檢查隊(duì)列管理器運(yùn)行狀態(tài):dspmq顯示結(jié)果中QMNAME表示MQ隊(duì)列管理器的名稱(chēng),STATUS表示當(dāng)前運(yùn)行狀態(tài)。運(yùn)行狀態(tài)有如下幾種:Starting正在啟動(dòng)Running正在運(yùn)行Ending正在停止Ended normally已經(jīng)正常終止Ended immediately已經(jīng)立即終止Ended preemtively已經(jīng)強(qiáng)制終止Ended unexpectively異常終止
注意:停止MQ后必須使用dspmq命令進(jìn)行狀態(tài)檢查
2、查看通道運(yùn)行狀態(tài)與啟停通道
runmqsc
dis chl(*);查看所有通道定義
dis chs(*);查看所有通道狀態(tài),如果沒(méi)有查詢(xún)到通道狀態(tài),或報(bào)錯(cuò)AMQ8420: Channel Status not found,請(qǐng)啟動(dòng)通道
dis chs(ChannelName); 查看通道ChannelName的狀態(tài)
通道狀態(tài)有如下幾種:
STARTING正在啟動(dòng)BINDING正在綁定INITIALIZING正在初始化RUNNING正常STOPPING?正在停止RETRYING重試PAUSED等待STOPPED已停止REQUESTING請(qǐng)求
start?chl(ChannelName);啟動(dòng)通道
stop?chl(ChannelName);停止通道
* 重置通道
reset channel(ChannelName);?重置通道序號(hào)。當(dāng)本地與其他MQ隊(duì)列管理器的通道無(wú)法正常啟動(dòng)的情況,檢查日志發(fā)現(xiàn)是通道序號(hào)不一致,此時(shí)就需要先停止發(fā)送方通道,清空隊(duì)列深度并在發(fā)送方和接收方進(jìn)行通道計(jì)數(shù)的重置,重置后啟動(dòng)通道即可恢復(fù)通訊。
注意:重置成功mq序列號(hào)一般相同或相差1
3、查看通道監(jiān)聽(tīng)狀態(tài)與啟停監(jiān)聽(tīng)
runmqsc
dis listner(*);查看通道監(jiān)聽(tīng)定義
dis lsstatu(listnerName);查看監(jiān)聽(tīng)狀態(tài)
start?lstr(listnerName); 啟動(dòng)監(jiān)聽(tīng)
stop?lstr(listnerName); 停止監(jiān)聽(tīng)?
4、查看隊(duì)列深度
runmqsc
dis q(*);查看所有各類(lèi)隊(duì)列的屬性
dis?qlocal(QName);查看所有本地隊(duì)列的屬性
隊(duì)列深度屬性為:CURDEPTH
查看隊(duì)列深度display ql('隊(duì)列名') ?curdepth
*清空隊(duì)列深度
清空隊(duì)列深度
clear ql(‘隊(duì)列名’)
三、MQ發(fā)送和接收消息
su mqm
發(fā)送消息
amqsput ?隊(duì)列名 ?隊(duì)列管理器
獲取消息
amqsget ?隊(duì)列名 ?隊(duì)列管理器
可通過(guò)配合查看隊(duì)列深度命令,完成mq的聯(lián)調(diào)
六、其他維護(hù)中常用linux命令
1、測(cè)試端口連接
telnet ip port
2、查看已啟動(dòng)的端口
netstat -an | grep 端口號(hào)
3、查看應(yīng)用進(jìn)程
ps -ef |grep java
4、修改權(quán)限
chomd ?XXX(對(duì)應(yīng)的權(quán)限) ?文件目錄
5、修改文件或目錄下所有文件所有者和組
Chomd -R 用戶(hù)名:組名 ?文件目錄
6、查看目錄內(nèi)容
ls 或者ls -l (簡(jiǎn)寫(xiě)ll)
7、查看文件輸出
cat 目錄/文件名
或者
Vi 目錄/文件名 按i可進(jìn)入編輯
按 G 到文檔末尾
按 gg 到文件首行
不保存退出
Esc ??:q!
保存退出
Esc ??:wq
vi 進(jìn)入文檔文檔后查找關(guān)鍵字
Esc 進(jìn)入命令行
/關(guān)鍵字
按n向下繼續(xù)查找
按N向上繼續(xù)查找
8、殺進(jìn)程
Kill -9 進(jìn)程號(hào)
9、復(fù)制
cp -r 源目錄 ?目標(biāo)目錄
10、移動(dòng)
mv ?-i 源文件或目錄 目標(biāo)文件或目錄
11、刪除
rm -R 文件目錄
12、 切換工作目錄
cd ?相對(duì)路徑或絕對(duì)路徑
~也表示為 home 目錄 的意思, . 則是表示目前所在的目錄, .. 則表示目前目錄位置的上一層目錄。