CentOS:当我使用 SSH 时,会创建 core.* 文件

CentOS:当我使用 SSH 时,会创建 core.* 文件

当我通过 SSH 进入 CentOS 服务器实例时,我注意到创建了如下文件:

11714560 9月 14日 02:18 core.1084

有人知道这些是什么吗?以及为什么会发生这种情况?

答案1

我在 CPanel 设置中遇到了同样的问题。在我的例子中,运行

strings core.nnnn | less

表明问题可以追溯到错误的 Perl 命令。这是有问题的部分/etc/bashrc(通过在启动脚本中 grep perl 找到):

if [ "$LOCALLIBUSER" != "root" ]; then
    eval $(perl -Mlocal::lib)
fi

如果我尝试eval $(perl -Mlocal::lib)在控制台上运行,它会转储核心,所以这肯定是问题所在。

这种现象很常见,谷歌搜索后就出现了此主题,除了检查 perl 模块之外没有提供太多建议。

答案2

核心文件是核心转储的标志。这意味着程序已崩溃,并且您拥有转储时程序内存的核心转储。

如果将“ulimit -c 0”放入 sysconfig,则可以防止这种情况发生 - 您将不会获得核心文件。但您还应该首先检查崩溃的原因以及原因 - 您可能在那里遇到了严重的问题。

阅读更多http://aplawrence.com/Linux/limit_core_files.html

答案3

命令:

gdb -c core.1084 

将解释哪个进程崩溃了以及原因。

也许您的 .bashrc 中设置了一些自动运行的 GUI 程序,当它无法访问正在运行的 X 服务器时就会崩溃。

答案4

检查file core.1084— 如果是sshd崩溃的,则可能是根工具包,它替换了您原来的sshd二进制文件或所使用的一些库sshd

这是一个粗略的脚本,用于验证二进制文件及其使用的库的校验和是否与rpm数据库一致:

#!/bin/bash

{
  echo "$1"
  cd /lib
  ldd "$1" | cut -d ' ' -f 1 | xargs rpm -qf
  cd /usr/lib
  ldd "$1" | cut -d ' ' -f 1 | xargs rpm -qf
} 2>/dev/null | sort -u | xargs rpm -V

相关内容