如何使用“正常运行时间”显示自上次系统启动以来经过的时间?

Adr*_*rge 25 command-line

我想使用 显示自上次系统启动以来经过的时间uptime,但我不希望它显示所有信息。我只想知道自上次系统启动以来经过了多少小时(即:18:17:59)

Rad*_*anu 38

要以hh:mm:ss格式获取自上次系统启动以来经过的时间,您可以使用:

awk '{print int($1/3600)":"int(($1%3600)/60)":"int($1%60)}' /proc/uptime
Run Code Online (Sandbox Code Playgroud)

/proc/uptime 伪文件包含两个数字:

  • 第一个数字是系统已启动的时间(以秒为单位)。
  • 第二个数字是机器在几秒钟内空闲的时间。

因此,使用awk您可以获取第一个数字并将其转换为hh:mm:ss格式。

  • 我认为值得注意的是,第二个数字是所有 CPU 空闲的时间,因此它可能比实际的正常运行时间长得多。对于 n 个 CPU 系统,第二个数字可以*接近*第一个数字表示的实际正常运行时间的 n 倍。例如,我正在运行的具有 2 个 CPU 的嵌入式平台当前显示“6032.31 11574.35”作为 `/proc/uptime` 的内容 (4认同)

rea*_*uck 18

要以秒为单位获得正常运行时间:

awk '{print $1}' /proc/uptime
Run Code Online (Sandbox Code Playgroud)

要在几分钟内获得正常运行时间:

 echo $(awk '{print $1}' /proc/uptime) / 60 | bc
Run Code Online (Sandbox Code Playgroud)

要以小时为单位获得正常运行时间:

 echo $(awk '{print $1}' /proc/uptime) / 3600 | bc
Run Code Online (Sandbox Code Playgroud)

要获得 x 位精度,您可以添加 scale=x,例如 x=2

echo "scale=2; $(awk '{print $1}' /proc/uptime) / 3600" | bc
Run Code Online (Sandbox Code Playgroud)