jenkins:你們是怎么在控制台實時打印服務啟動日志的?


最近,在做服務的自動化部署時遇到一個小需求,測試童鞋希望能夠直接在jenkins的控制台上看到服務的啟動日志,用戶是上帝,你們想要那就給你們做出來好了。

那么,問題來了,怎么才能在jenkins控制台上實時展示服務的啟動日志呢?

經常登錄linux服務器查看日志的童鞋會說我平時都是使用tail -f命令來查看服務的日志,是的,這里也不例外,想要在jenkins控制台實時打印服務啟動日志還是使用tail -f命令。

不過,光用tail -f就足夠了嗎?

可以想一下,我們平時直接在服務器上查看實時日志時使用tail -f,當服務啟動完成后tail命令是不會結束的,應用到jenkins上的表現則為任務hang住,永遠結束不了,這樣顯然不行。所以就得想個辦法讓它自動退出tail。

那么用什么辦法呢?

什么時候退出呢?

當然是服務啟動完成時就要退出,那么什么時候才算服務啟動完成呢?對於這個問題,大家應該都很清楚,當然是看到服務啟動成功或者失敗的標志性輸出后服務的啟動就算完成了。

所以,思路就有了,我要看到服務啟動成功或失敗的標志后就退出日志的打印。

那么有沒有一個命令可以檢測我想要的內容時退出命令呢?

當然有,這就是強大的sed命令。sed的q參數可以幫助我們在檢測到想要的內容后退出,語法如下

sed '/xxx/q'

由於服務啟動不能確保是成功還是失敗,所以我們想要檢測的內容可能是成功標志也有可能是失敗標志,所以sed命令要寫成下面這樣

sed '/成功標志日志|失敗標志日志/q'

然后結合tail命令,最終的命令如下

tail -f xxx.log | sed '/成功標志日志|失敗標志日志/q'

好了,通過tail和sed最終我們實現了在jenkins控制台實時打印服務啟動日志並在服務啟動完成后退出日志打印的目的,你學會了嗎?


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM