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

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

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

答案1

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

awk '{print int($1/3600)":"int(($1%3600)/60)":"int($1%60)}' /proc/uptime

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

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

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

答案2

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

awk '{print $1}' /proc/uptime

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

 echo $(awk '{print $1}' /proc/uptime) / 60 | bc

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

 echo $(awk '{print $1}' /proc/uptime) / 3600 | bc

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

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

答案3

尝试一下这个:

uptime | awk '{ print $3 }'

实际上,它打印了 生成的行的第三个单词uptime

答案4

我想我会将我的添加到收藏夹中,因为没有类似的东西......
尝试使用我的更有效率:

awk '{m=$1/60; h=m/60; printf "%sd %sh %sm %ss", int(h/24), int(h%24), int(m%60), int($1%60) }' /proc/uptime

结果: 42d 17h 23m 55s

编辑:因为我意识到我没有相当回答原始问题,这里是专门针对该问题的修订:

awk '{m=$1/60; h=m/60; printf "%s:%s:%s", int(h%24), int(m%60), int($1%60) }' /proc/uptime

结果: 17:23:55

相关内容