SpringBoot 自動化項目部署
阿新 • • 發佈:2018-07-12
日誌文件 linu 屏幕 jar --exclude inux gre 退出 輸出
1、查看當前服務器下面該項目是否在運行。
ps aux | grep "0.0.1-SNAPSHOT.jar" | grep -v grep | awk ‘{print $2}‘
該命令理解 “ps aux | grep "0.0.1-SNAPSHOT.jar"”,該部分主要查找已經啟動的服務中包含“0.0.1-SNAPSHOT.jar”。
“grep -v grep”的意思排除grep這條記錄,“awk”用來打印該服務的端口。
? ~ ps aux | grep "0.0.1-SNAPSHOT.jar" | grep -v grep zacky 1436 0.0 4.6 10233240 772904 s000 SN 9:53AM 0:43.92 /usr/bin/java -jar api-service-0.0.1-SNAPSHOT.jar ? ~ ps aux | grep "0.0.1-SNAPSHOT.jar" zacky 1436 0.0 4.6 10233240 772904 s000 SN 9:53AM 0:43.94 /usr/bin/java -jar api-service-0.0.1-SNAPSHOT.jar zacky1649 0.0 0.0 4276968 836 s003 S+ 10:07AM 0:00.00 grep --color=auto --exclude-dir=.bzr --exclude-dir=CVS --exclude-dir=.git --exclude-dir=.hg --exclude-dir=.svn 0.0.1-SNAPSHOT.jar ? ~ ps aux | grep "0.0.1-SNAPSHOT.jar" | grep -v grep zacky 1436 0.0 4.6 10233240 772904 s000 SN 9:53AM 0:43.94/usr/bin/java -jar api-service-0.0.1-SNAPSHOT.jar ? ~ ps aux | grep "0.0.1-SNAPSHOT.jar" | grep -v grep | awk ‘{print $2}‘ 1436
2.進入項目根目錄,執行運行項目命令。
nohup java -jar api-service-0.0.1-SNAPSHOT.jar >api-log.log 2>&1 &
nohup:不掛斷地運行命令,退出帳戶之後繼續運行相應的進程。
>api-log.log:是nohup把command的輸出重定向到當前目錄的指定的“api-log.log”文件中,即輸出內容不打印到屏幕上,而是輸出到“api-log.log”文件中。不指定文件名會在當前目錄創建nohup.out,如果當前目錄的 nohup.out 文件不可寫,輸出重定向到 $HOME/nohup.out 文件中。如果沒有文件能創建或打開以用於追加,那麽 Command 參數指定的命令不可調用。
2>&1:2就是標準錯誤,1是標準輸出,該命令相當於把標準錯誤重定向到標準輸出麽。這裏&相當於標準錯誤等效於標準輸出,即把標準錯誤和標準輸出同時輸出到指定的“日誌文件名.log”文件中。
java -jar 自己的springboot項目.jar:執行springboot的項目,如果單單只執行該命令,linux只會短暫的運行該項目,當退出控制臺後會自動關閉該項目。
最後的&:讓改作業在後臺運行。
3.tail 命令查看實時日誌並篩選。
? target git:(develop) ? tail -f api-log.log|grep 689abb9912585a05566f36b3eb941cdb 689abb9912585a05566f36b3eb941cdb:0.9375 689abb9912585a05566f36b3eb941cdb:1.0
SpringBoot 自動化項目部署