1. 程式人生 > >在企業級應用中我們如何通過Linux進行部署、替換、檢視日誌、殺死程序?

在企業級應用中我們如何通過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

殺死程序

檢視埠的資訊,根據程序號殺死程序,操作如下:

  1. netstat -nap|grep  80
  2. ps -aux|grep 727
  3. 殺掉該程序: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),再把新的檔案上傳(建議備份上一次的檔案),如果這次上線發生錯誤,還可以回退到上一個版本。


 

---------當你跌到谷底的時候,已經無法再跌的時候,就是你觸底反彈的時候了,跌的越低,反彈也會越高!