我如何知道服务器崩溃时正在做什么?

Mic*_*ine 3 linux centos kernel

我有一台在 Centos 5.2 上运行的服务器,有没有更好的方法来了解服务器崩溃的原因或当时它在做什么?

对不起,我是新手,感谢您的帮助~谢谢

Jam*_*s F 8

如果您遇到内核崩溃,您可以设置一个远程内核控制台来捕获本地控制台上可能丢失的所有数据(特别是如果崩溃来自不可屏蔽的中断,这往往会导致系统重新启动)。

在您预期可能会崩溃的系统上:

/sbin/modprobe netconsole netconsole=6666@10.1.1.16/eth0,6666@10.1.1.17/00:19:BB:31:B8:0E
Run Code Online (Sandbox Code Playgroud)
  • 6666 是任意端口号
  • 10.1.1.16 是本地接口的 IP 地址,通过
  • eth0 是要通过发送的本地接口的名称
  • 10.1.1.17 是要发送到的远程接口的 IP 地址
  • 00:19:BB:31:B8:0E 是要发送到的远程接口的 MAC 地址

在远程系统上,运行(这需要您安装 netcat):

nc -l -p 6666 -u | tee capture.file
Run Code Online (Sandbox Code Playgroud)

这将捕获远程系统上的所有内核输出。它运行在一个低得多的级别(内核中写入 /dev/klog 的同一点),因此您可能会看到内核在崩溃时输出的最后一点信息,即使 syslog 等。都已停止运营。