我已在设备上安装了 Linux。对于该设备,我需要找到总的开机时间。找到它的命令是什么?
答案1
uptime
告诉您机器已经运行了多长时间自启动以来,并且重新启动后它会归零,因此它不能解决您的问题;除非您找到一种方法来记录这些值并将其求和,同时还以某种方式有一个标志来告诉您机器是否已重新启动。
你可以使用smartctl
.如果/dev/sdx
是你的启动硬盘,
smartctl -a /dev/sdx | grep Power_On_Hours
将为您提供驱动器已运行的总小时数。这与机器的总正常运行时间的精确值不同,但在大多数情况下,这将是一个很好的近似值(此规则的例外情况是硬盘驱动器被更换或长时间进入睡眠模式)。
答案2
你可以使用正常运行时间。它是为 Debian 打包的(可能还有 Ubuntu、Mint 等衍生版本),但我不知道它是否为其他发行版打包。
来自 debian 包的描述:
跟踪正常运行时间的守护进程,尤其是高运行时间
正常运行时间守护进程通过启动 ID 跟踪系统的最高正常运行时间,并使用系统启动时间来保持会话彼此分开。它具有一个控制台程序来显示统计数据,并且可以在达到里程碑或新记录时发送邮件。
我的系统之一的输出示例:
# uprecords
# Uptime | System Boot up
----------------------------+---------------------------------------------------
1 147 days, 03:45:55 | Linux 5.10.0-4-amd64 Fri Mar 5 22:27:37 2021
2 98 days, 00:22:39 | Linux 5.17.0-1-amd64 Fri May 6 16:34:24 2022
3 74 days, 10:59:58 | Linux 5.14.0-1-amd64 Sat Oct 2 05:49:18 2021
4 72 days, 04:15:10 | Linux 5.4.0-4-amd64 Tue Mar 10 16:31:51 2020
5 68 days, 03:41:50 | Linux 5.18.0-4-amd64 Fri Aug 26 12:59:09 2022
6 64 days, 19:23:26 | Linux 4.19.0-3-amd64 Mon Mar 11 00:46:53 2019
7 64 days, 13:00:30 | Linux 5.16.0-3-amd64 Thu Mar 3 03:25:00 2022
8 53 days, 01:00:14 | Linux 5.2.0-2-amd64 Thu Sep 12 19:28:59 2019
9 51 days, 02:19:55 | Linux 5.10.0-1-amd64 Wed Jan 13 15:26:20 2021
10 48 days, 05:35:56 | Linux 5.6.0-1-amd64 Thu May 21 19:47:35 2020
----------------------------+---------------------------------------------------
-> 31 9 days, 09:25:44 | Linux 6.0.0-2-amd64 Wed Nov 2 18:01:34 2022
----------------------------+---------------------------------------------------
1up in 0 days, 21:21:34 | at Sun Nov 13 00:48:51 2022
t10 in 38 days, 20:10:13 | at Tue Dec 20 23:37:30 2022
no1 in 137 days, 18:20:12 | at Wed Mar 29 21:47:29 2023
up 1372 days, 09:11:43 | since Wed Feb 6 20:29:05 2019
down 1 day , 21:46:30 | since Wed Feb 6 20:29:05 2019
%up 99.861 | since Wed Feb 6 20:29:05 2019
它只从安装时开始跟踪正常运行时间 - 因此,显然,它无法告诉您有关此之前的正常运行时间的任何信息。
另请注意,系统正常运行时间是不是与“开机时间”完全相同。它会非常接近,但是打开机器电源和内核启动之间的时间不会被计算在内......这可能是每次启动 20 或 30 秒到每次启动几分钟,具体取决于启动所需的时间您的系统进行开机测试并启动内核。