获取Linux系统启动的日期和时间

获取Linux系统启动的日期和时间

我知道这会uptime打印机器启动和运行的时间,但是有没有比从这个输出倒计时更简单(可靠)的方法来获取启动日期?

我试着四处寻找/proc,但没有找到任何相关的东西。我的上面还有一行这样的内容dmesg

[    0.673492] rtc_cmos rtc_cmos: setting system clock to 2011-03-14 14:26:52 UTC (1300112812)

但我想知道这种方法是否与分布和内核版本无关?

答案1

我发现了一些命令这里。尝试who -blast reboot | head -1
who给出数字日期,而last reboot返回缩写的日期/月份名称。

答案2

这将从内核查询正常运行时间并将其显示在本地时区中:

date -d "`cut -f1 -d. /proc/uptime` seconds ago"

请谨慎使用其他选项。last一旦wtmp被轮换,该命令将停止工作。该who命令取决于 的可用性和完整性utmp。并且/proc/1可能具有当前日期而不是启动时间日期,甚至可能在强化系统上不可用。编辑dmesg只有一个固定长度的后台缓冲区,因此它也不可靠。内核日志可能存在,/var/log但大多数发行版仅保留 8 周的日志。

答案3

我在寻找一种获得一致、可解析的方法时偶然发现了这个问题开机时间,而不是自启动以来的时间每次通话时都会发生变化。

看起来这uptime -s在大多数 Linux 系统上都可以起作用。

答案4

  • 好的:uptime -swho -b解析/proc/uptime
  • 坏的ls -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 5月 3 13:09 /proc/1

ls -ld/proc似乎/sys在恢复后仍然存在,但它依赖于实现,并且将来可能会发生变化,所以不要使用这样的方法。如果你的系统时钟是本地时间,而不是 UTC,它们有负偏移。

(我还没有权限对答案发表评论,因此打开了一个新答案。抱歉。)

编辑:uptime -s首先得到回答在这个答案中经过迈克格雷林

相关内容