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


17

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

Answers:


31

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

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

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

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

因此,awk您可以使用冷杉编号并将其转换为hh:mm:ss格式。


15

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

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

2

试试这个:

uptime | awk '{ print $3 }'

实际上,它会打印由产生的行的第三个单词uptime


3
有用。但这似乎不是正确的方法。如果第三个单词不是时间,例如我的第三个单词是“ 4”,那该怎么办,因为我的机器运行了4天。这就是我得到的:“ 02:00:39最多4天,12:54、2个用户,平均负载:0.03。0.06,0.06”。
阿德里安·乔治

哦:DI不知道多于1天的时间!
阿伦(Alen)2013年

好的:d现在您对此有一些答案?
阿德里安·乔治

不,对不起 uptime似乎没有选择,但我也无法在网上找到任何东西。
Alen

2

修改后的显示天数:

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

0

这会将您的输出格式化为2个零填充:

awk '{printf("%02d:%02d:%02d",int($1/3600),int($1/3600/60),int($1%60))}' /proc/uptime
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.