最近,我有一次在我的主目录中创建核心转储导致文件系统空间不足的经历。
我如何告诉 AIX 在其他位置创建核心转储?
答案1
IBM 的此页面似乎包含您需要了解的有关 AIX 下核心转储文件的所有信息。
您正在寻找的命令看起来是chcore
.以下是该页面的摘录:
可以为系统上的所有帐户设置中央核心文件存储库,但每个帐户都可以覆盖默认值并安装自定义存储库。为此存储库选择一个具有足够可用空间的文件系统。所有帐户都需要对此目录的读写权限。为了防止用户删除其他用户创建的核心文件,应启用粘滞位。该目录的权限通常应为 1777,与
/tmp
.要设置具有唯一核心文件命名的系统范围核心文件存储库,请以 root 身份运行以下命令:
$ cd /path/to/filesystem $ mkdir corefiles $ chmod 1777 $ ./corefiles $ chcore -p on -n on -l ./corefiles
注意:添加选项 -c on 以打开核心文件压缩。这些设置仅对新登录的帐户有效,并且在重新启动后仍然有效。
要覆盖系统范围的默认存储库并为特定用户设置存储库,请以该用户身份运行以下命令:
$ mkdir ~/corefiles $ chcore -p on -n on -l ~/corefiles
答案2
默认情况下,核心转储仅位于 core_pattern 设置的相对路径中(通常这意味着核心进程的当前工作目录)。如果您在 core_pattern 前面添加绝对路径,那么它应该将转储放在那里。
您可以通过使用 sysctl 或直接将值转储到 /proc 来完成此操作
例如:
$ echo "/tmp/cores/core.%e.%p.%h.%t" > /proc/sys/kernel/core_pattern
核心转储现在将位于 /tmp/cores/ 中
编辑:抱歉,我错过了这是针对 AIX 的。为此,您可以使用 chcore 实用程序。 IE,chcore -p on -l /tmp/cores/
您还可以添加该-d
标志以使其成为系统默认值。