9

我需要与 Linux 的“cat /proc/uptime”完全相同的输出。

例如,使用 /proc/uptime,你会得到

1884371.64 38646169.12

但是对于任何 Mac 替代品,例如“正常运行时间”,您都会得到

20:25 上 20:26,6 个用户,平均负载:3.19 2.82 2.76

我需要它与 cat /proc/uptime完全一样,但在 Mac OS X 上。

4

4 回答 4

7

知道了...

$sysctl -n kern.boottime | cut -c14-18
87988

然后我将其转换为可读格式(不记得如何):

1 天 00:26:28

于 2013-03-14T01:33:09.877 回答
6

Macintosh 上根本没有“/proc”目录。

在 MacOS 上,您可以执行以下命令

sysctl kern.boottime 

你会得到这样的回应:

kern.boottime: { sec = 1362633455, usec = 0 } Wed Mar  6 21:17:35 2013
于 2013-03-11T01:00:20.653 回答
3
boottime=`sysctl -n kern.boottime | awk '{print $4}' | sed 's/,//g'`
unixtime=`date +%s`
timeAgo=$(($unixtime - $boottime))
uptime=`awk -v time=$timeAgo 'BEGIN { seconds = time % 60; minutes = int(time / 60 % 60); hours = int(time / 60 / 60 % 24); days = int(time / 60 / 60 / 24); printf("%.0f days, %.0f hours, %.0f minutes, %.0f seconds", days, hours, minutes, seconds); exit }'`
echo $uptime

将返回类似 1 Day, 20 hours, 10 minutes, 55 seconds

于 2013-07-18T19:28:58.777 回答
0

这是我获取值而不是 Cut 方法的方法

sysctl kern.boottime | awk '{print $5}'

其中 $5 是字符串的范围

例子

$1 Gives you "sysctl kern.boottime"
$2 Gives you "{"
$3 Gives you "sec"

从字符串

kern.boottime: { sec = 1604030189, usec = 263821 } Fri Oct 30 09:26:29 2020
于 2020-11-03T07:43:51.103 回答