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 文件生成時,你將收到相應的報警。