在Unix/Linux下,高效工作方式不是操作圖形頁面,而是命令行操作,命令行意味著更容易自動(dòng)化。使用過Linux系統(tǒng)的朋友應(yīng)該都知道它的命令行強(qiáng)大之處。話說回來了,以下這些命令使用技巧你又知道多少呢?
創(chuàng)新互聯(lián)建站服務(wù)項(xiàng)目包括民豐網(wǎng)站建設(shè)、民豐網(wǎng)站制作、民豐網(wǎng)頁制作以及民豐網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,民豐網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到民豐省份的部分城市,未來相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!
1、Vim自動(dòng)添加注釋及智能換行
# vi ~/.vimrc set autoindentset tabstop=4set shiftwidth=4function AddTitle()call setline(1,"#!/bin/bash")call append(1,"#====================================================")call append(2,"# Author: lizhenliang")call append(3,"# Create Date: " . strftime("%Y-%m-%d"))call append(4,"# Description: ")call append(5,"#====================================================")endfmap F4 :call AddTitle()cr
打開文件后,按F4就會(huì)自動(dòng)添加注釋,省了不少時(shí)間:
2、查找并刪除/data這個(gè)目錄7天前創(chuàng)建的文件
# find /data -ctime +7 -exec rm -rf {} \;# find /data -ctime +7 | xargs rm -rf
3、tar命令壓縮排除某個(gè)目錄
# tar zcvf data.tar.gz /data --exclude=tmp #--exclude參數(shù)為不包含某個(gè)目錄或文件,后面也可以跟多個(gè)
4、查看tar包存檔文件,不解壓
# tar tf data.tar.gz #t是列出存檔文件目錄,f是指定存檔文件
5、使用stat命令查看一個(gè)文件的屬性
訪問時(shí)間(Access)、修改時(shí)間(modify)、狀態(tài)改變時(shí)間(Change)stat index.phpAccess: 2018-05-10 02:37:44.169014602 -0500Modify: 2018-05-09 10:53:14.395999032 -0400Change: 2018-05-09 10:53:38.855999002 -0400
6、批量解壓tar.gz
方法1:# find . -name "*.tar.gz" -exec tar zxf {} \;方法2:# for tar in *.tar.gz; do tar zxvf $tar; done方法3:# ls *.tar.gz | xargs -i tar zxvf {}
7、篩除出文件中的注釋和空格
方法1:# grep -v "^#" httpd.conf |grep -v "^$"方法2:# sed -e ‘/^$/d’ -e ‘/^#/d’ httpd.conf http.conf或者# sed -e '/^#/d;/^$/d' #-e 執(zhí)行多條sed命令方法3:# awk '/^[^#]/|/"^$"' httpd.conf 或者# awk '!/^#|^$/' httpd.conf
8、篩選/etc/passwd文件中所有的用戶
方法1:# cat /etc/passwd |cut -d: -f1方法2:# awk -F ":" '{print $1}' /etc/passwd
9、iptables網(wǎng)站跳轉(zhuǎn)
先開啟路由轉(zhuǎn)發(fā):echo "1" /proc/sys/net/ipv4/ip_forward #臨時(shí)生效內(nèi)網(wǎng)訪問外網(wǎng)(SNAT):iptables –t nat -A POSTROUTING -s [內(nèi)網(wǎng)IP或網(wǎng)段] -j SNAT --to [公網(wǎng)IP]#內(nèi)網(wǎng)服務(wù)器要指向防火墻內(nèi)網(wǎng)IP為網(wǎng)關(guān)公網(wǎng)訪問內(nèi)網(wǎng)(DNAT)(公網(wǎng)端口映射內(nèi)網(wǎng)端口):iptables –t nat -A PREROUTING -d [對(duì)外IP] -p tcp --dport [對(duì)外端口] -j DNAT --to [內(nèi)網(wǎng)IP:內(nèi)網(wǎng)端口]#內(nèi)網(wǎng)服務(wù)器要配置防火墻內(nèi)網(wǎng)IP為網(wǎng)關(guān),否則數(shù)據(jù)包回不來。另外,這里不用配置SNAT,因?yàn)橄到y(tǒng)服務(wù)會(huì)根據(jù)數(shù)據(jù)包來源再返回去。
10、iptables將本機(jī)80端口轉(zhuǎn)發(fā)到本地8080端口
# iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8080
11、find命令查找文件并復(fù)制到/opt目錄
方法1:# find /etc -name httpd.conf -exec cp -rf {} /opt/ \;: #-exec執(zhí)行后面命令,{}代表前面輸出的結(jié)果,\;結(jié)束命令方法2:# find /etc -name httpd.conf |xargs -i cp {} /opt #-i表示輸出的結(jié)果由{}代替
12、查看根目錄下大于1G的文件
# find / -size +1024M 默認(rèn)單位是b,可以使用其他單位如,C、K、M
13、查看服務(wù)器IP連接數(shù)
# netstat -tun | awk '{print $5}' | cut -d: -f1 |sort | uniq -c | sort -n -tun:-tu是顯示tcp和udp連接,n是以IP地址顯示cut -d:-f1:cut是一個(gè)選擇性顯示一行的內(nèi)容命令,-d指定:為分隔符,-f1顯示分隔符后的第一個(gè)字段。uniq -c:報(bào)告或刪除文中的重復(fù)行,-c在輸出行前面加上出現(xiàn)的次數(shù)sort -n:根據(jù)不同類型進(jìn)行排序,默認(rèn)排序是升序,-r參數(shù)改為降序,-n是根據(jù)數(shù)值的大小進(jìn)行排序
14、插入一行到391行,包括特殊符號(hào)"/"
# sed -i "391 s/^/AddType application\/x-httpd-php .php .html/" httpd.conf
15、列出nginx日志訪問最多的10個(gè)IP
方法1:# awk '{print $1}' access.log |sort |uniq -c|sort -nr |head -n 10sort :排序uniq -c:合并重復(fù)行,并記錄重復(fù)次數(shù)sort -nr :按照數(shù)字進(jìn)行降序排序方法2:# awk '{a[$1]++}END{for(v in a)print v,a[v] |"sort -k2 -nr |head -10"}' access.log
16、顯示nginx日志一天訪問量最多的前10位IP
# awk '$4="[16/May/2017:00:00:01" $4="[16/May/2017:23:59:59"' access_test.log |sort |uniq -c |sort-nr |head -n 10# awk '$4="[16/Oct/2017:00:00:01" $4="[16/Oct/2017:23:59:59"{a[$1]++}END{for(i in a){print a[i],i|"sort -k1 -nr |head -n 10"}}' access.log
17、獲取當(dāng)前時(shí)間前一分鐘日志訪問量
# date=`date +%d/%b/%Y:%H:%M --date="-1 minute"` ; awk -vd=$date '$0~d{c++}END{print c}' access.log# date=`date +%d/%b/%Y:%H:%M --date="-1 minute"`; awk -vd=$date '$4="["d":00" $4="["d":59"{c++}END{print c}' access.log # grep `date +%d/%b/%Y:%H:%M --date="-1 minute"` access.log |awk 'END{print NR}'# start_time=`date +%d/%b/%Y:%H:%M:%S --date="-5 minute"`;end_time=`date +%d/%b/%Y:%H:%M:%S`;awk -vstart_time="[$start_time" -vend_time="[$end_time" '$4=start_time $4=end_time{count++}END{print count}' access.log
18、找出1-255之間的整數(shù)
方法1:# ifconfig |grep -o '[0-9]\+' #+號(hào)匹配前一個(gè)字符一次或多次方法2:# ifconfig |egrep -o '\([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\'
19、找出IP地址
# ifconfig |grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}' #-o只顯示匹配字符
20、給文檔增加開頭和結(jié)尾說明信息
# awk ‘BEGIN{print "開頭顯示信息"}{print $1,$NF} END{print "結(jié)尾顯示信息"}’/etc/passwd# awk 'BEGIN{printf " date ip\n------------------\n"} {print $3,$4} END{printf "------------------\nend...\n"}' /var/log/messages date ip------------------03:13:01 localhost10:51:45 localhost------------------end...
21、查看網(wǎng)絡(luò)狀態(tài)命令
# netstat -antp #查看所有網(wǎng)絡(luò)連接# netstat -lntp #只查看監(jiān)聽的端口信息# lsof -p pid #查看進(jìn)程打開的文件句柄# lsof -i:80 #查看端口被哪個(gè)進(jìn)程占用
22、生成8位隨機(jī)字符串
方法1:# echo $RANDOM |md5sum |cut -c 1-8方法2:# openssl rand -base64 4方法3:# cat /proc/sys/kernel/random/uuid | cut -c 1-8
23、while死循環(huán)
while true; do #條件精確等于真,也可以直接用條件[ "1" == "1" ],條件一直為真ping -c 2
24.awk格式化輸出
將文本列進(jìn)行左對(duì)齊或右對(duì)齊。
左對(duì)齊:# awk '{printf "%-15s %-10s %-20s\n",$1,$2,$3}' test.txt右對(duì)齊:# awk '{printf "%15s %10s %20s\n",$1,$2,$3}' test.txt
25.整數(shù)運(yùn)算保留小數(shù)點(diǎn)
方法1:# echo 'scale=2; 10/3;'|bc #scale參數(shù)代表取小數(shù)點(diǎn)位數(shù)方法2:# awk BEGIN'{printf "%.2f\n",10/3}'
26.數(shù)字求和
# cat a.txt10235356方法1:#!/bin/bashwhile read num;dosum=`expr $sum + $num`done a.txtecho $sum方法2:# cat a.txt |awk '{sum+=$1}END{print sum}'
27、判斷是否為數(shù)字(字符串判斷也如此)
# [[ $num =~ ^[0-9]+$ ]] echo yes || echo no #[[]]比[]更加通用,支持模式匹配=~和字符串比較使用通配符`^ $:從開始到結(jié)束是數(shù)字才滿足條件=~:一個(gè)操作符,表示左邊是否滿足右邊(作為一個(gè)模式)正則表達(dá)式
28、刪除換行符并將空格替換別的字符
# cat a.txt |xargs echo -n |sed 's/[ ]/|/g' #-n 不換行# cat a.txt |tr -d '\n' #刪除換行符
29、查看文本中20至30行內(nèi)容(總共100行)
方法1:# awk '{if(NR 20 NR 31) print $0}' test.txt方法2:# sed -n '20,30p' test.txt 方法3:# head -30 test.txt |tail
30、文本中兩列位置替換
# cat a.txt60.35.1.15 awk '{print $2"\t"$1}' a.txt
運(yùn)維管理命令
netstat -nap 查看系統(tǒng)正在開放的端口
netstat -tnlp | grep 80 查看哪個(gè)服務(wù)占用了80端口(-t表示只列出tcp協(xié)議的連接)
netstat -anptu | grep tcp 查看當(dāng)前開放的所有tcp端口
rm -r 文件名 刪除文件 (-r 遞歸) (-f 強(qiáng)制)
rm -rf ./* 刪除當(dāng)前目錄里的所有文件
mv 文件路徑 目標(biāo)路徑 移動(dòng)文件到指定目錄
mv 文件名a 文件名b 將文件名a重命名為文件名b
mv ./* ../ROOT/ 把當(dāng)前目錄下的所有文件移動(dòng)到上級(jí)目錄的ROOT文件夾里面
cp 起始路徑 目標(biāo)路徑 將一個(gè)文件從一個(gè)地址復(fù)制到另一個(gè)地址
cp 文件1 文件2 將文件1復(fù)制一份命名為文件2
ssh 遠(yuǎn)程主機(jī)的用戶名@遠(yuǎn)程主機(jī)ip 遠(yuǎn)程登錄服務(wù)器(如果無法登陸,刪除本地.ssh文件里的known_hosts文件里的內(nèi)容)
scp -r 本地路徑 user@ip:服務(wù)器路徑 將本地文件傳到服務(wù)器
scp user@ip:服務(wù)器路徑 本地路徑 將服務(wù)器文件傳到本地
chmod -R 777 文件路徑 賦予指定文件所有權(quán)限
chmod -R 777 . 以遞歸的方式修改當(dāng)前目錄下所有文件和子目錄的權(quán)限
rpm -qa | grep httpd 查詢是否安裝httpd服務(wù),并列出安裝文件
rpm -e 軟件名 查詢某個(gè)軟件是否被安裝 (只有通過yum安裝的才能查詢到)
ps -ef | grep java 顯示當(dāng)前進(jìn)程及參數(shù),并過濾出java程序的進(jìn)程 { PID表示這個(gè)程序的ID,PPID表示這個(gè)程序的父程序的ID }
kill PID 立即終止這個(gè)進(jìn)程
crontab -e 編寫計(jì)劃任務(wù)(語法格式:分 時(shí) 日 月 周 需要執(zhí)行的命令)
mkdir a 創(chuàng)建一個(gè)名稱為a的文件夾
touch 文件名.文件格式 創(chuàng)建一個(gè)帶后綴的文件
du -sh 文件路徑 查看指定路徑的文件的大小
grep "關(guān)鍵詞" 文件名 查找文件中帶這個(gè)關(guān)鍵詞的文件
系統(tǒng)維護(hù)命令
service 服務(wù)名 start/stop/restart 在deb包管理的系統(tǒng)中開關(guān)服務(wù)的命令
systemctl start/stop/restart 服務(wù)名 在rpm包管理的系統(tǒng)中開關(guān)服務(wù)的命令
man 命令 解釋這個(gè)命令
history 數(shù)字 顯示最近使用的命令
apt-get install 命令符號(hào) 安裝命令程序
apt-get purge 命令符號(hào) 卸載命令程序
which 程序名 搜索某個(gè)程序路徑
whereis 軟件名 搜索某個(gè)軟件路徑
echo $PATH; 查看標(biāo)準(zhǔn)路徑目錄
dmesg -T 顯示系統(tǒng)接入設(shè)備日志
sudo nautilus 文件路徑 以管理員身份打開文件夾進(jìn)行刪改
df -h 查看磁盤使用情況
fdisk -l 查看分區(qū)具體情況
route 檢查自己的路由表
traceroute url 檢查本機(jī)到url的完整路徑
git clone github地址 從github下載文件到本地
常用路徑的作用
cd /bin 進(jìn)入根目錄下的bin目錄
cd bin 進(jìn)入當(dāng)前目錄下的bin目錄
/etc/init.d 系統(tǒng)的啟動(dòng)文件目錄,可以使用start啟動(dòng)著里面的文件 如:./bluetooth start 啟動(dòng)藍(lán)牙
/usr/share / 從源安裝的軟件的文件默認(rèn)存放地址
windows系
快捷鍵
Alt + Esc 切換活動(dòng)窗口
Alt + F4 關(guān)閉當(dāng)前程序
win + D 顯示和隱藏桌面
win + I 打開設(shè)置
win + M 最小化所有窗口
win + Tab 打開任務(wù)視圖
Ctrl + win + D 添加虛擬桌面
Ctrl + win + 切換虛擬桌面
Ctrl + win + F4 關(guān)閉你正在使用的虛擬桌面
打開服務(wù)配置
gpedit.msc 打開組策略
services.msc 打開服務(wù)控制
sysdm.cpl 打開系統(tǒng)屬性(配置環(huán)境變量等操作)
chcp 65001 設(shè)置cmd為utf8字符集
c:ProgramDataMicrosoftWindowsStart MenuPrograms windows啟動(dòng)程序路徑
在cmd中光標(biāo)只有在當(dāng)前行才能 ctrl + v 進(jìn)行粘貼
windows下的ssh的使用
C:ProgramDatassh sshd_config配置文件所在目錄,修改這個(gè)文件可以更改ssh連接到win后所在的目錄 #ChrootDirectory none 改成 ChrootDirectory C: 然后重啟ssh server服務(wù),這樣用linux連接到win后就會(huì)到 C: 目錄下
將linux上的 a.txt文件 復(fù)制到windows的 c盤的a文件夾中
scp user@ip:/home/username1/視頻/a.txt /c:/a ( -r 遞歸傳送 )
將windows的 c盤的a文件夾中的c.txt文件 復(fù)制到linux的中
scp /c:/a/c.txt user@ip:/home/username1/視頻/a ( -r 遞歸傳送)
只能在windows系統(tǒng)上操作上面的兩條命令,win中的user是用戶文件夾里的文件夾名字。
在Mysql安裝的目錄中找到bin目錄,復(fù)制此路徑到系統(tǒng)屬性的‘高級(jí)’中的環(huán)境變量path里,這樣就可以在cmd中運(yùn)行 mysql -u root -p
Dos命令
linux常用命令如下:
1、查看內(nèi)核版本:uname -a。
2、控制臺(tái)-》圖形界面:init 5或者startx。
3、圖形界面-》控制臺(tái): init3或者直接注銷。
4、如何查看ip地址:ifconfig。
5、配置ip:ifconfig eth0 ip地址。
6、重啟:reboot 或者 shutdown -r now。
7、普通用戶切換到系統(tǒng)用戶:su。
8、注銷用戶指令:logout。
9、從子機(jī)退出:ctrl+alt。
10、全屏:ctrl+alt+enter 。
基本思想:
Linux的基本思想有兩點(diǎn):第一,一切都是文件;第二,每個(gè)文件都有確定的用途。其中第一條詳細(xì)來講就是系統(tǒng)中的所有都?xì)w結(jié)為一個(gè)文件,包括命令、硬件和軟件設(shè)備、操作系統(tǒng)、進(jìn)程等等對(duì)于操作系統(tǒng)內(nèi)核而言,都被視為擁有各自特性或類型的文件。
完全免費(fèi):
Linux是一款免費(fèi)的操作系統(tǒng),用戶可以通過網(wǎng)絡(luò)或其他途徑免費(fèi)獲得,并可以任意修改其源代碼。這是其他的操作系統(tǒng)所做不到的。正是由于這一點(diǎn),來自全世界的無數(shù)程序員參與了Linux的修改、編寫工作,程序員可以根據(jù)自己的興趣和靈感對(duì)其進(jìn)行改變,吸收了無數(shù)程序員的精華。
以上內(nèi)容參考:百度百科--Linux
一、創(chuàng)建linux維護(hù)用戶
登錄root用戶
創(chuàng)建新用戶
useradd 新用戶名
設(shè)置用戶密碼
passwd 新用戶密碼
二、安裝jdk和配置環(huán)境變量
建議在root用戶下直接安裝jdk,并直接配置環(huán)境變量,同時(shí)給非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的維護(hù)用戶
如果使用root安裝的話記得設(shè)置權(quán)限。( chomd -r 外層文件目錄 )
su - 用戶名
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)境沒有安裝過mq,卸載這部分命令我沒有親自測試過
設(shè)置環(huán)境
以用戶身份登錄到組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)的所有偵聽器。
endmqlsr -m SXRECV
查看系統(tǒng)上當(dāng)前安裝的軟件包(組件)
sudo rpm -qa | grep MQSeries
列出軟件包并一次性卸載
sudo rpm -qa | grep MQSeries | xargs rpm -ev
再將對(duì)應(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
進(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客戶機(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)建組和用戶
安裝過程創(chuàng)建了一個(gè)名為mqm的用戶和一個(gè)同樣名為 mqm 的組。設(shè)置一個(gè)密碼來解鎖。
passwd mqm
——————————————————————————————————————
三、 配置
(這部分隊(duì)列管理器、通道、隊(duì)列等根據(jù)實(shí)際情況自行配置)
切換用戶:
su mqm
創(chuàng)建隊(duì)列管理器
使用crtmqm命令來創(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用戶的環(huán)境變量,編輯如下文件,并添加下面的內(nèi)容,如下:
第一種方法:相對(duì)第二種較安全僅對(duì)mqm用戶有效
方法一:
(1) -bash-3.2$ vi /var/mqm/.bash_profile --有可能會(huì)在文件夾下看不到這個(gè)文件,通過編輯即可看到
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)程終端重新打開,無需重啟服務(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)聽
DEFINE LISTENER (RECLISTENER) TRPTYPE (TCP) CONTROL(QMGR) PORT (2214)
啟動(dòng)監(jiān)聽
start LISTENER(RECLISTENER)
啟動(dòng)通道
start channel(SVRCONN)
start channel(XYDATA)
start channel(XYACK)
———————————————————————————————————————————————————
四、2035錯(cuò)誤碼 說明
如果程序連接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ì)列管理器名稱。
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ì)列管理器的名稱,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),如果沒有查詢到通道狀態(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ì)列管理器的通道無法正常啟動(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ài)與啟停監(jiān)聽
runmqsc
dis listner(*);查看通道監(jiān)聽定義
dis lsstatu(listnerName);查看監(jiān)聽狀態(tài)
start?lstr(listnerName); 啟動(dòng)監(jiān)聽
stop?lstr(listnerName); 停止監(jiān)聽?
4、查看隊(duì)列深度
runmqsc
dis q(*);查看所有各類隊(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ì)列管理器
可通過配合查看隊(duì)列深度命令,完成mq的聯(lián)調(diào)
六、其他維護(hù)中常用linux命令
1、測試端口連接
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 用戶名:組名 ?文件目錄
6、查看目錄內(nèi)容
ls 或者ls -l (簡寫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 目錄 的意思, . 則是表示目前所在的目錄, .. 則表示目前目錄位置的上一層目錄。