随着时间的推移,您应该已经在您的 Linux 机器上安装或升级到许多新的内核版本。 如果您的系统上安装了多个 Linux 内核,您将如何找到上次启动特定 Linux 内核版本的时间? 这就是我们现在要发现的。 本指南解释了如何检查 Linux 内核上次使用或启动的时间。
列出所有已安装的 Linux 内核
在我们找出何时启动特定的 Linux 内核之前,让我们 检查所有已安装内核的列表 在我们的 Linux 系统中。
默认情况下,所有已安装的 Linux 内核及其相关文件都存储在 /boot
目录。 只需使用 find
查看已安装内核列表的命令:
$ find /boot/vmli*
来自我的 Ubuntu 20.04 LTS 桌面的示例输出:
/boot/vmlinuz /boot/vmlinuz-5.4.0-64-generic /boot/vmlinuz-5.4.0-65-generic /boot/vmlinuz.old
正如您在上面的输出中看到的,安装了两个 Linux 内核版本(5.4.0-64 和 5.4.0-65)。 默认会启动最新的Kernel,所以5.4.0-65的最后访问时间是今天。 现在让我们检查上次启动旧内核版本(即 5.4.0-64)的时间。
查找上次启动特定 Linux 内核版本的时间
通过查看相关内核映像文件的上次访问时间,我们可以轻松找到内核上次启动的时间。 在 Linux 中,有一个名为的命令行实用程序 stat
这有助于我们找到这样的细节。
这 stat
命令用于显示文件和文件系统信息,例如大小、权限、创建和访问日期等。
找出特定的 Linux 内核版本(例如 vmlinuz-5.4.0-64-generic
) 最后一次启动,运行:
$ stat -c %x /boot/vmlinuz-5.4.0-64-generic
这里,
-c
标志用于指定格式,%x
用于以人类可读的格式显示上次访问的时间。
示例输出:
2021-01-23 13:15:00.000000000 +0530
根据上述输出,Linux 内核版本 5.4.0-64 最后一次启动是在 2021 年 1 月 23 日。
你也可以用资本 %X
如果要在输出中显示 Unix 纪元时间,请在上述命令中添加标志。
$ stat -c %X /boot/vmlinuz-5.4.0-64-generic 1611387900
查找 Linux 内核访问时间的另一种方法是使用 find
命令如下:
$ find /boot/vmlinuz-5.4.0-64-generic -printf "%[email protected] %pn" 1611387900.0000000000 /boot/vmlinuz-5.4.0-64-generic
上次使用特定 Linux 内核版本启动时显示 journalctl
命令
在使用的现代 Linux 发行版中 系统化 服务管理器,我们可以使用 journalctl
命令显示上次使用或启动 Linux 内核的时间。
要查看最近的引导,请运行以下命令:
$ journalctl --boot | grep "Linux version"
或者,
$ journalctl -b | grep "Linux version"
示例输出:
Feb 08 11:28:01 ostechnix kernel: Linux version 5.4.0-65-generic ([email protected]) (gcc version 9.3.0 (Ubuntu 9.3.0-17ubuntu1~20.04)) #73-Ubuntu SMP Mon Jan 18 17:25:17 UTC 2021 (Ubuntu 5.4.0-65.73-generic 5.4.78)

要列出所有可用的先前引导,请运行:
$ journalctl --list-boots
您将看到一长串以前的靴子,如下面的输出所示:
[...] -10 b4634cec90874b47a3aa4342b14c49bd Tue 2021-02-02 17:14:46 IST—Tue 2021-02-02 22:19:11 IST -9 3b98c3f4a27f4444bf5b08243f4e27a6 Wed 2021-02-03 10:48:10 IST—Wed 2021-02-03 22:20:14 IST -8 5e75c35655f24015af92063fe6be1bd7 Thu 2021-02-04 10:44:31 IST—Thu 2021-02-04 11:21:08 IST -7 1ac699796f6d4fe288e231720027bb3a Thu 2021-02-04 11:21:29 IST—Thu 2021-02-04 22:26:52 IST -6 d3a9d739e07546a6836d9f84a0bbb6c3 Fri 2021-02-05 12:24:21 IST—Fri 2021-02-05 22:15:59 IST -5 ba8b180cade44f2bad11710b72b69475 Sat 2021-02-06 10:46:20 IST—Sat 2021-02-06 10:48:42 IST -4 58f942c57e044e63934e682ba99e66b9 Sat 2021-02-06 10:49:10 IST—Sat 2021-02-06 11:40:51 IST -3 364162c62fbd4d3ca25c2d37b65168cf Sat 2021-02-06 11:45:21 IST—Sat 2021-02-06 15:22:31 IST -2 97492fb7ad0e4d3d9f818c428f8e5cbe Sat 2021-02-06 15:24:24 IST—Sat 2021-02-06 22:47:39 IST -1 67a81252453045eca42daa9417f48eed Sun 2021-02-07 10:49:30 IST—Mon 2021-02-08 01:00:45 IST 0 3850ccfefeb9428689c521a206b1df81 Mon 2021-02-08 11:28:01 IST—Mon 2021-02-08 18:46:14 IST

您现在可以检查每个引导描述符以查找上次使用特定内核版本的时间。
例子:
$ journalctl --boot=ba8b180cade44f2bad11710b72b69475 | grep "Linux version"
示例输出:
Feb 06 10:46:20 ostechnix kernel: Linux version 5.4.0-65-generic ([email protected]) (gcc version 9.3.0 (Ubuntu 9.3.0-17ubuntu1~20.04)) #73-Ubuntu SMP Mon Jan 18 17:25:17 UTC 2021 (Ubuntu 5.4.0-65.73-generic 5.4.78)

希望这可以帮助。
find commandJournalctlLinuxLinux basicsLinux commandsLinux howtoLinux Kernelstat commandsystemd