如何查询和修改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 程序文件名 |
有话要说