当文件系统几乎满时禁用核心转储

当文件系统几乎满时禁用核心转储

我们很好地利用了核心转储,并且不想完全禁用它们。同时,我们不希望它们填满文件系统。

当它们转储到的文件系统高于指定阈值(例如 90%)时,Linux 是否可以被告知自动禁用它们?

答案1

这不是内置的,但您可以将 Linux 配置为在发生核心转储时调用您选择的程序。该程序在其标准输入上接收核心转储,并且可以决定如何处理它。这是通过配置的/proc/sys/kernel/core_pattern。请参阅《通过管道将核心转储传送到程序》core(5) 手册页了解详情。

例如,Ubuntu 通过管道将核心转储传输到分配当发生核心转储时通知用户并报告错误。您可以编写自己的程序来检查磁盘空间,并且仅在超过特定阈值时才写入文件。

请注意,该程序以 root 身份运行,因此无论它做什么,都可能被故意崩溃的程序利用。例如,程序可能会在没有写入权限的目录中崩溃,并欺骗核心转储程序在该目录中写入核心文件。似乎没有一种简单的方法可以安全地使用此接口,除非您将所有核心转储写入专用目录而不是崩溃程序的当前目录中。

相关内容