在企業級應用中我們如何通過Linux進行部署、替換、檢視日誌、殺死程序?
用過Linux的人都知道,Linux的命令是非常多的,其實我們並不不需要去全學個遍。掌握最常用的命令之後,學習不常用的命令也不會很難,我們要學的是一種方法而不是為了技術而學技術。
檢視埠
在Linux使用過程中,我們需要了解當前系統開放了哪些埠,並且要檢視開放這些埠的具體程序和使用者,可以通過netstat命令進行簡單查詢,netstat命令各個引數說明如下:
- -t : 指明顯示TCP埠
- -u : 指明顯示UDP埠
- -l : 僅顯示監聽套接字(所謂套接字就是使應用程式能夠讀寫與收發通訊協議(protocol)與資料的程式)
- -p : 顯示程序識別符號和程式名稱,每一個套接字/埠都屬於一個程式。
- -n : 不進行DNS輪詢,顯示IP(可以加速操作)
可以顯示當前伺服器上所有埠及程序服務,加上grep結合可檢視某個具體埠及服務情況,例如:
netstat -a | 檢視所有服務埠 |
netstat -ntlp | 檢視當前所有tcp埠 |
netstat -ntulp |grep 80 | 檢視所有80埠使用情況 |
netstat -an | grep 3306 | 檢視所有3306埠使用情況 |
netstat -lanp | 檢視一臺伺服器上面哪些服務及埠 |
lsof -i:埠號 | 用於檢視某一埠的佔用情況,比如檢視8000埠使用情況,lsof -i:8000 |
殺死程序
檢視埠的資訊,根據程序號殺死程序,操作如下:
- netstat -nap|grep 80
- ps -aux|grep 727
- 殺掉該程序:kill -9 727
小提示:當面試官問你如果存在殺不死的程序,該怎麼辦?,最簡單的方法當然是重啟伺服器,相當於清理記憶體了。可是方法雖然簡單,但是不是很實用,因為伺服器是不能隨隨便便重啟的,客戶隨時可能要用到。最好的辦法是,我們殺掉其父程序,父程序幹掉後,就沒問題了。通過ps -ef | grep 程序ID,檢視其父程序,然後 kill -9 父程序ID。
檢視日誌
1.jar包
目直接在jar包錄下,輸入命令檢視即可,如下所示:
檢視實時日誌 | tail -f nohup.out |
分頁檢視所有日誌 | cat nohup.out | more |
分頁檢視前N行日誌 | tail -n 1000 nohup.out | more |
檢視實時日誌並檢索關鍵字 | tail -f nohup.out | grep "關鍵字" |
檢索日誌,並顯示該條日誌的前後N行記錄 | cat nohup.out | grep -n -B10 -A10 "關鍵字" |
檢視日誌,從第1000行開始,顯示500行 | cat nohup.out | tail -n +1000| head -n 500 |
檢視日誌,顯示1000行到3000行 | cat filename| head -n 3000 | tail -n +1000 |
2.war包
war包一般都會放在tomcat的webapp目錄下(不一定要用tomcat,只要是WEB應用伺服器就可以),tomact目錄的logs資料夾就是存放日誌的,如果想要退出檢視實時日誌,按Ctrl+C即可。
檢視實時日誌 | tail -f catalina.out |
查詢前100條日誌 | head -100 catalina.out |
查詢最後100條日誌 | tail -100 catalina.out |
從倒數第20000行開始,查詢前100條日誌 | tail -20000 catalina.out | head -100 |
從倒數第20000行開始,查詢tomcat啟動日誌 | tail -20000 catalina.out | grep 'org.apache.catalina.startup.Catalina.star |
部署
1.jar包
第一種:java -jar XXX.jar
臨時性:這是最基本的jar包執行方式,但是當我們用ctrl+c中斷或者關閉視窗時,程式也會中斷執行。
第二種:java -jar XXX.jar &
&代表在後臺執行,使用ctrl+c不會中斷程式的執行,但是關閉視窗會中斷程式的執行。
第三種:nohup java -jar XXX.jar &
執行的程式日誌會輸出到當前目錄下的nohup.out檔案,使用ctrl+c中斷或者關閉視窗都不會中斷程式的執行。
第四種:nohup java -jar XXX.jar >temp.out &
>temp.out的意思是將日誌輸出重定向到temp.out檔案,使用ctrl+c中斷或者關閉視窗都不會中斷程式的執行。
2.war包
直接放到tomcat下的webapp目錄下,執行tomcat即可。
替換
無論是替換jar還是war,都應該先停掉程序、殺死埠,用連線工具刪除檔案(WinSCP或者FinalShell),再把新的檔案上傳(建議備份上一次的檔案),如果這次上線發生錯誤,還可以回退到上一個版本。
---------當你跌到谷底的時候,已經無法再跌的時候,就是你觸底反彈的時候了,跌的越低,反彈也會越高!