1

感觉就像我之前访问过 stackoverflow 100 次。总是找到好的解决方案,但现在我被困住了。

我想监控计算机每天运行多长时间。这是用 Ruby 编写的程序的一部分,在 Fedora 机器上运行。

以前我在 Windows 下做过类似的事情,可以使用 WndProc 捕获相关的电源事件。但是,对于 Fedora(或一般的 Linux),我找不到一个很好的钩子来检测开机和关机/挂起/休眠/....

任何建议都受到高度赞赏。

谢谢,杰罗克

编辑:似乎我还不清楚我想要实现什么。实际上不仅希望了解当前的正常运行时间,还希望了解过去的正常运行时间。因此,我应该知道“计算机在过去 14 天内已运行 x 小时”或类似信息。

另一个补充是,例如该last命令也不能完成这项工作——它不会显示系统是进入休眠还是挂起。

4

3 回答 3

1

您可能想要解析该last命令的输出,该输出记录用户的登录信息。如果伪用户reboot“登录”,您就知道系统已重新启动。(这对 Ubuntu 有效;也许 Fedora 使用不同的名称,例如boot.)

可能会有更直接的接口;谷歌搜索ruby + utmp。该utmp文件通常在 中/var/run,记录last命令报告的数据。

于 2011-02-14T21:36:32.097 回答
0

我不知道 ruby​​ 的细节,但在 linux 中有一个命令正常运行时间。

我认为在 ruby​​ 中你需要使用 System

所以它会像system 'uptime'

然后你可以解析那个结果

于 2011-02-14T21:32:54.533 回答
0

尽管在此答案框中,您会使用像 StackOverflow 这样的反引号uptime 将它们视为代码样式。

于 2011-02-14T21:34:39.257 回答