線(xiàn)上問(wèn)題排查,這些命令你一定用得到!
作者 | KG沈劍
線(xiàn)上問(wèn)題排查,以下場(chǎng)景,你遇到過(guò)嗎?
一、了解機(jī)器連接數(shù)情況
問(wèn)題:1.2.3.4的sshd的監(jiān)聽(tīng)端口是22,如何統(tǒng)計(jì)1.2.3.4的sshd服務(wù)各種連接狀態(tài)(TIME_WAIT/ CLOSE_WAIT/ ESTABLISHED)的連接數(shù)。
常見(jiàn)方法:
- netstat -n | grep 1.2.3.4:22 | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}’
- netstat -lnpta | grep ssh | egrep “TIME_WAIT | CLOSE_WAIT | ESTABLISHED”
- n [僅限于阿里云]?
說(shuō)明:netstat是追查網(wǎng)絡(luò)連接問(wèn)題常用工具,和grep/awk結(jié)合更是神器,當(dāng)然如果在阿里云上,還有更方便的方法。
二、從已經(jīng)備份好的日志中查詢(xún)數(shù)據(jù)
問(wèn)題:從已備份的suyun.2022-06-26.log.bz2日志中,找出包含關(guān)鍵字1.2.3.4的日志有多少條。
常見(jiàn)方法:
- bzcat suyun.2022-06-26.log.bz2 | grep '1.2.3.4' | wc -l
- bzgrep '1.2.3.4' suyun.2022-06-26.log.bz2 | wc -l
- less suyun.2022-06-26.log.bz2 | grep '10.37.9.11' | wc -l
說(shuō)明:線(xiàn)上日志文件一般以bz2 壓縮之后保留,如果解壓查詢(xún),非常耗空間與時(shí)間,bzcat和bzgrep是研發(fā)同學(xué)必須掌握的工具。
三、備份服務(wù)的技巧
問(wèn)題:打包備份/opt/web/suyun_web目錄,排除掉目錄中的logs和目錄,打包好的文件存放在/opt/backup目錄下。
常見(jiàn)方法:
說(shuō)明:這個(gè)命令線(xiàn)上應(yīng)用較為頻繁,在項(xiàng)目需要打包遷移時(shí),常常需要排除掉日志目錄,exclude是需要掌握的參數(shù)。
四、查詢(xún)線(xiàn)程數(shù)
問(wèn)題:查詢(xún)服務(wù)器運(yùn)行服務(wù)的總線(xiàn)程數(shù),當(dāng)機(jī)器線(xiàn)程數(shù)超報(bào)警閥值時(shí),能快速查出相關(guān)進(jìn)程及線(xiàn)程信息。
參考答案:
- ps -eLf | wc -l
- pstree -p | wc -l?
五、磁盤(pán)報(bào)警,清空最大文件
問(wèn)題:找出服務(wù)器上,某個(gè)正在運(yùn)行的tomcat產(chǎn)生的大量異常日志,找出該文件,并釋放空間。不妨設(shè)該文件包含log關(guān)鍵字,并且大于1G。
常見(jiàn)方法:
第一步,找到該文件:
- find / -type f -name "*log*" | xargs ls -lSh | more
- du -a / | sort -rn | grep log | more
- find / -name '*log*' -size +1000M -exec du -h {} \;?
第二步,將文件清空:
假設(shè)找到的文件為a.log
正確的情況方式應(yīng)該為:
文件空間會(huì)立刻釋放。
很多同學(xué)會(huì)使用:
這樣文件雖然刪除,但是因tomcat服務(wù)仍在運(yùn)行,空間不會(huì)立刻釋放,需要重啟tomcat才能將空間釋放。
六、顯示文件,過(guò)濾注釋
問(wèn)題:顯示server.conf 文件,屏蔽掉#號(hào)開(kāi)頭的注釋行
常見(jiàn)方法:
- sed -n '/^[#]/!p' server.conf
- sed -e '/^#/d' server.conf
- grep -v "^#" server.conf?
七、磁盤(pán)IO異常排查
問(wèn)題:磁盤(pán)IO異常如何排查,類(lèi)似寫(xiě)入慢或當(dāng)前使用率較高,請(qǐng)查出導(dǎo)致磁盤(pán)IO異常高的進(jìn)程ID。
常見(jiàn)方法:
第一步:
查看當(dāng)前正在寫(xiě)磁盤(pán)操作的所有進(jìn)程ID信息。
第二步:如果此時(shí)各項(xiàng)寫(xiě)入指標(biāo)都很低,基本沒(méi)有大的寫(xiě)入操作,則需要排查磁盤(pán)自身。可以查看系統(tǒng)
或
看看是否有相關(guān)的磁盤(pán)異常報(bào)錯(cuò),同時(shí)可以在寫(xiě)入慢的磁盤(pán)上touch一個(gè)空文件看看,是否磁盤(pán)故障導(dǎo)致無(wú)法寫(xiě)入。