我知道这会uptime打印机器启动并运行的时间,但是有没有比从此输出倒计时更容易(可靠)的方法来获取启动日期?
我试着环顾四周/proc,但没有找到任何相关的东西。我的也有这样一行dmesg:
[ 0.673492] rtc_cmos rtc_cmos: setting system clock to 2011-03-14 14:26:52 UTC (1300112812)
Run Code Online (Sandbox Code Playgroud)
但我想知道这种方法是否与发行版和内核版本无关?
sam*_*var 24
这从内核查询正常运行时间并将其显示在本地时区中:
date -d "`cut -f1 -d. /proc/uptime` seconds ago"
Run Code Online (Sandbox Code Playgroud)
小心其他选项。该last命令将wtmp在旋转后立即停止工作。该who命令取决于 的可用性和完整性utmp。并且/proc/1可能有当前日期而不是启动时间日期,甚至可能在强化系统上不可用。编辑:dmesg只有一个固定长度的后台缓冲区,所以它也不可靠。内核日志可能存在,/var/log但大多数发行版只保留 8 周。
Odd*_*r13 12
我btime在/proc/stat四处闲逛时发现了这条线
cat /proc/stat | grep btime | awk '{ print $2 }'
Run Code Online (Sandbox Code Playgroud)
快速搜索后,我找到了这个页面:/proc/stat 解释,其中概述了“/proc/stat文件中可用的有关内核活动的各种信息
”。
“btime”行给出了系统启动的时间,以 Unix 纪元以来的秒数为单位。
uptime -s,who -b或者解析/proc/uptimels -ld /proc/1和变体。不要为此使用 ls -ld /proc/1。它有时会在 s2disk 或 s2ram 之后更新。
在我的情况下,who -b说:
系统启动 5 月 2 日 09:51
虽然ls -ld /proc/1:
dr-xr-xr-x 7 root root 0 May 3 13:09 /proc/1
ls -ldfor /procor/sys似乎在恢复后仍然存在,但它依赖于实现,并且将来可能会发生变化,因此不要使用此类方法。而如果你的系统时钟是本地时间,UTC没有,他们有负偏移。
(我还没有权限对答案发表评论,所以打开了一个新答案。抱歉。)
编辑:uptime -s首先由mikegreiling在此答案中回答
| 归档时间: |
|
| 查看次数: |
55515 次 |
| 最近记录: |