nginx編譯參數輸出問題

網站最近在做年中大促,其中圖片業務使用的是nginx集羣,爲了滿足大促時負載規模需要擴容,我們現在使用的自動化運維工具是基於saltstack的,自動化部署後有個小需求,想把nginx編譯安裝時的參數重定向備份到一個文件裏,查看編譯參數使用-V,這裏說下大V和小v的區別,

-v : show version and exit 查看版本後退出

-V : show version and configure options then exit 查看版本和配置參數後退出

於是,/usr/local/nginx/sbin/nginx -V > nginx_configure.txt

wKiom1P0e0myMTVAAADT3rSsWOw812.jpg

問題來了,無法把信息定向到文件裏而是直接定向到終端顯示

wKiom1P0fZHjKJJlAAAh_z_SzGE125.jpg

爲什麼會這樣呢?還是看看nginx源碼吧。

wKioL1P0f-yRGiYwAACZ7SlIKHY582.jpg

在src/core/nginx.c中找到一個函數ngx_write_stderr函數,然後繼續往下找到與這個函數相關的代碼

wKioL1P0gFTzJY-3AADn-fgkbgI078.jpg

ngx_write_stderr是nginx自定義的inline函數,當使用-V參數查看版本的時候會調用這個函數。既然是stderr肯定是說把-V的輸出當做錯誤輸出打印到終端顯示了,那麼就很清楚了linux下stdout標準正確輸出也是默認輸出是1,標準錯誤輸出是2,於是/usr/local/nginx/sbin/nginx -V 2> nginx_configure.txt

wKiom1P0gGCCV37qAADghEkX9Uk039.jpg有內容了,問題很簡單,主要是遇到問題解決問題的思路很重要。這種備份參數的對於中小企業網站運維時還是必要的,避免在網站遷移後瞭解過去的編譯安裝情況。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章