如何查詢和修改Linux操作系統生成core dump文件的默認路徑


最近遇到一個問題,SUSE Linux系統中的某個應用程序異常而最終引發了系統core dump,但遺憾的時在系統重啓後並沒有找到core文件,影響了我們對問題的分析定位。

經過分析發現系統默認的core文件生成路徑是/var/logs,但/var/logs目錄並非系統自帶的,系統初始安裝默認自帶的是/var/log,最終導致該系統出現core dump後並沒能生成core文件,因此如何查詢和修改系統默認的core dump文件生產路徑呢?方法如下:

一. 查詢core dump文件路徑:
方法1:
# cat /proc/sys/kernel/core_pattern

方法2:
# /sbin/sysctl kernel.core_pattern

二. 修改core dump文件路徑:
方法1:臨時修改:修改/proc/sys/kernel/core_pattern文件,但/proc目錄本身是動態加載的,每次系統重啓都會重新加載,因此這種方法只能作爲臨時修改。
/proc/sys/kernel/core_pattern
例:echo ‘/var/log/%e.core.%p’ > /proc/sys/kernel/core_pattern

方法2:永久修改:使用sysctl -w name=value命令。
例:/sbin/sysctl -w kernel.core_pattern=/var/log/%e.core.%p

爲了更詳盡的記錄core dump當時的系統狀態,可通過以下參數來豐富core文件的命名:
%% 單個%字符
%p 所dump進程的進程ID
%u 所dump進程的實際用戶ID
%g 所dump進程的實際組ID
%s 導致本次core dump的信號
%t core dump的時間 (由1970年1月1日計起的秒數)
%h 主機名
%e 程序文件名

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