我有一个 Linux 系统,它向我显示系统上次启动的两个不同时间。
root@linux:~ # who -b; uptime
system boot 2009-07-09 20:51
11:48am up 1 day 0:54, 1 user, load average: 0.01, 0.03, 0.00
Run Code Online (Sandbox Code Playgroud)
我想谁在显示 /var/log/wtmp 的内容和正常运行时间我不知道。
有什么办法可以解决这个差异吗?我昨天重新启动了系统,所以我知道正常运行时间向我显示的内容是正确的。
[我在这里发现了一些误解,我认为这篇文章最终会消除这些误解]
应该没有任何区别,因为两者都指/var/run/utmp文件,文件有自己的格式来存储记录。如果有任何差异,那么你的 utmp 文件就被破坏了。正常运行时间显示自系统启动以来已经过去的时间量或系统已运行的时间。它不会告诉您系统时钟或系统启动时间。系统启动时间信息存储在/var/run/wtmp文件中。
[centos@centos temp]$ date; uptime; who -b
Fri Dec 9 20:41:40 IST 2011
20:41:40 up 1:32, 2 users, load average: 0.50, 0.37, 0.29
system boot 2011-12-09 19:11
Run Code Online (Sandbox Code Playgroud)
uptime 也指 /proc/uptime,它本质上将计数器保留在内核中。
[centos@centos temp]$ sleep 1; cat /proc/uptime; uptime; sleep 5; cat /proc/uptime ; uptime
5914.79 5271.83
20:47:39 up 1:38, 2 users, load average: 0.29, 0.31, 0.27
5920.07 5276.80
20:47:44 up 1:38, 2 users, load average: 0.56, 0.36, 0.29
Run Code Online (Sandbox Code Playgroud)
/var/run/wtmp由last/lastb 命令引用。who&w引用/var/run/utmp文件。last reboot将显示自创建日志文件以来所有重新启动的日志。
此外,如果您有 /proc 文件系统,那么诸如此类的工具也procinfo可以为您提供启动时间。
例子:
bash$ procinfo | grep Bootup
Bootup: Wed Mar 21 15:15:50 2001 Load average: 0.04 0.21 0.34 3/47 6829
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13611 次 |
| 最近记录: |