Linux Core Dump 是一种在程序崩溃时生成的包含程序运行时内存信息的文件,它可以帮助开发者定位问题和修复 bug
开启 Core Dump:
在 Linux 系统中,默认情况下是关闭 Core Dump 的。你可以通过以下命令开启 Core Dump:
ulimit -c unlimited
这将允许生成无限制大小的 Core Dump 文件。你还可以设置一个具体的大小限制,例如:
ulimit -c 1024
这将限制 Core Dump 文件的大小为 1024KB。
配置 Core Dump 文件的存储路径和文件名:
你可以通过修改 /proc/sys/kernel/core_pattern
文件来配置 Core Dump 文件的存储路径和文件名。例如:
echo "/var/crash/core-%e-%p-%t" > /proc/sys/kernel/core_pattern
这将使 Core Dump 文件存储在 /var/crash
目录下,并使用 core-<executable>-<pid>-<timestamp>
的格式命名。
监控 Core Dump 文件:
你可以使用 inotify
工具来监控 Core Dump 文件的生成。首先,安装 inotify-tools
:
sudo apt-get install inotify-tools
然后,创建一个脚本(例如 monitor_coredump.sh
)来监控 Core Dump 文件的生成,并在生成时发送报警:
#!/bin/bash
inotifywait -m -r -e create --format '%w%f' /var/crash | while read FILE
do
echo "Core Dump generated: $FILE"
# 在这里添加你的报警逻辑,例如发送邮件或者短信
done
给脚本添加可执行权限:
chmod +x monitor_coredump.sh
最后,运行脚本:
./monitor_coredump.sh
分析 Core Dump 文件:
当 Core Dump 文件生成后,你可以使用 gdb
工具来分析文件,以获取更多关于程序崩溃的信息。例如:
gdb <executable> <core-dump-file>
在 gdb
中,你可以使用 bt
命令查看崩溃时的调用栈,以帮助定位问题。
通过以上步骤,你可以实现对 Linux 系统上的 Core Dump 文件的监控和报警。当有新的 Core Dump 文件生成时,你将收到相应的报警。