📜  如何确定 Kali Linux 重启的原因?

📅  最后修改于: 2021-10-28 02:33:07             🧑  作者: Mango

我们可以通过几种不同的方法找出导致重启的原因。我们将在本文中介绍这些方法,并使用可访问的程序和 Linux 系统上的日志来诊断此类问题。

发现 Linux 系统意外重启或无明显原因重启的情况并不少见。查找并修复核心原因可能有助于防止未来出现问题和意外停机。

检查 systemd 日志

如果您没有持久的 systemd-journal,您将无法在磁盘上保留持久的日志,并且您的日志将在您重新启动时丢失。您可以通过编辑/etc/systemd/journald .conf 或使用以下说明手动创建目录来完成此操作:

$ sudo mkdir /var/log/journal
$ sudo systemd-tmpfiles --create --prefix /var/log/journal 2>/dev/null
$ sudo systemctl -s SIGUSR1 kill systemd-journald

之后,如果您想在日志中记录多个重新启动的条目,您可以重新启动机器,尽管这不是必需的。

要从日志中获取记录的引导列表,请使用以下命令:

journalctl --list-boots

如您所见,该清单适用于许多靴子。使用以下命令进一步进行特定的重启:

journalctl -b {num} -n

检查系统消息

您还可以将系统消息与您希望诊断的重启联系起来。

日志位于CentOS/RHEL系统上的/var/log/messages中。它在Ubuntu/Debian系统上登录到/var/log/Syslog。要过滤或发现特定数据,只需使用tail命令或您喜欢的文本编辑器。

此类条目表示由管理员或root用户触发的关机/重启,如下面的日志所示。这些消息因操作系统以及重启/关闭的启动方式而异,但检查系统日志始终会提供有用的信息,即使它并不总是足够精确以查明原因。

nano  /var/log/syslog

以下是可用于过滤系统日志的命令示例:

捕获的事件可能并不总是特定的。始终寻找可能导致系统关闭或崩溃的警告或问题。

检查重启时间

您可以使用wholast命令来查看系统何时重新启动。

who -b

last -x | head | tac

检查审计日志

这是使用 ausearch工具为使用auditd 的系统检查各种事件的绝佳位置。要检查审计日志中的最后两项,请使用以下命令。

sudo ausearch -i -m system_boot,system_shutdown | tail -4

将报告最近的两次关机或重新启动。如果这报告 SYSTEM_SHUTDOWN后跟SYSTEM_BOOT ,那么一切都应该没问题。如果它连续返回两个或多个 SYSTEM_BOOT 行或仅返回一个SYSTEM_BOOT行,则系统不会正常关闭。以下是典型输出的示例:

上面的输出中列出了两个连续的SYSTEM_BOOT消息,如果与系统日志相关联,这可能表明非正常关闭。

结论

单个命令或单个日志文件可能并不总是足以确定Linux 重新启动的原因。因此,了解记录系统相关事件的命令和日志总是有用的,并且可以减少发现根本原因所需的时间。

以上示例可能会帮助您开始进行故障排除。如果您混合使用此类工具和日志,您可能肯定知道发生了什么以及您的系统如何重新启动。