利用core_pattern实现core文件的配置和管理

参考:https://xz.aliyun.com/t/1098

这里所说的core_pattern 指的是:/proc/sys/kernel/core_pattern。 我们知道在Linux系统中,如果进程崩溃了,系统内核会捕获到进程崩溃信息,然后将进程的coredump 信息写入到文件中,这个文件名默认是core,但是也可以通过配置修改这个文件名。比如可以通过修改/proc/sys/kernel/core_pattern 文件的内容来指定。

Linux man 手册上关于core_pattern的描述:http://man7.org/linux/man-pages/man5/core.5.html

img

自Linux 内核2.6.19 之后 core_pattern 不仅仅可以包含一个指定报文coredump信息的文件名,还可以是Linux 管道加一个用户空间的程序或者一个脚本:

img

如果core_pattern 中第一个字符是 Linux管道符 |, 那么Linux 内核在捕获进程崩溃信息的时候,就会以root权限执行管道符后门的程序或者脚本,将进程崩溃信息传递给这个程序或者脚本。

core文件会以标准输入的形式传给core_pattern中配置的脚本,在脚本里面可以将输入重定向到自己需要的目录,并且可以在重定向的过程中进行压缩。另外,可以在重定向写入文件之前对已有的core文件进行清理。

猜你喜欢

转载自www.cnblogs.com/jmliao/p/11718101.html